|
249 | 249 | r←newList[;1]~oldList[;1] |
250 | 250 | ∇ |
251 | 251 |
|
252 | | - ∇ r←AddTatinDependencies Args;path;packages;projectFolder;cfg;development;ref;flag;q;list;sourceFolder;targetNS;targetNamespace |
| 252 | + ∇ r←AddTatinDependencies Args;path;packages;projectFolder;cfg;development;ref;flag;q;list;sourceFolder;targetNS;targetNamespace;ref2;targetNS2;list2;sourceFolder2;noOf |
253 | 253 | r←'' |
254 | 254 | packages←Args._1 |
255 | 255 | projectFolder←Args._2 |
|
293 | 293 | :EndIf |
294 | 294 | :Until flag |
295 | 295 | list←P.AddTatinDependencies packages projectFolder development |
296 | | - r←⍪(⊂(⍕≢list),' Tatin dependenc',((1+1<≢list)⊃'y' 'ies'),' added:'),' ',¨list |
| 296 | + r←⍪(⊂(⍕≢list),' Tatin ',(development/'development-'),'dependenc',((1+1<≢list)⊃'y' 'ies'),' added:'),' ',¨list |
297 | 297 | :If 0<≢list |
298 | 298 | :AndIf 1 P.##.C.YesOrNo'LoadTatinDependenciesAfterAdding@Would you like to (re-)load all Tatin dependencies?' |
299 | 299 | targetNS←(⊃{⍺,'.',⍵}/cfg.CIDER.(parent projectSpace)){0=≢⍵:⍺ ⋄ ⍺,'.',⍵}{⍵↓⍨⍵⍳'='}ref.tatin |
|
302 | 302 | :Else |
303 | 303 | targetNS ⎕NS'' |
304 | 304 | :EndIf |
305 | | - sourceFolder←projectFolder,'/',{⍵↑⍨¯1+⍵⍳'='}ref.tatin |
| 305 | + sourceFolder←projectFolder,'/',P.##.RemoveTargetDefinition ref.tatin |
306 | 306 | list←⎕SE.Tatin.LoadDependencies sourceFolder targetNS |
307 | | - r←r⍪⊂'Dependenc',((1+1<≢list)⊃'y was' 'ies were'),' loaded' |
| 307 | + ⍝ If ref points to def then ref2 doesn't and vice versa |
| 308 | + ref2←(1+~development)⊃cfg.CIDER.(dependencies dependencies_dev) |
| 309 | + targetNS2←(⊃{⍺,'.',⍵}/cfg.CIDER.(parent projectSpace)){0=≢⍵:⍺ ⋄ ⍺,'.',⍵}{⍵↓⍨⍵⍳'='}ref2.tatin |
| 310 | + :If targetNS≡targetNS2 ⍝ Only when "normal" dependencies and development dependencies go into the same namespace... |
| 311 | + sourceFolder2←projectFolder,'/',P.##.RemoveTargetDefinition ref2.tatin |
| 312 | + :If 0<≢P.##.F.ListDirs sourceFolder2 |
| 313 | + list2←⎕SE.Tatin.LoadDependencies sourceFolder2 targetNS2 ⍝... do we need to (re-)load both |
| 314 | + noOf←+/≢¨list list2 |
| 315 | + :Else |
| 316 | + noOf←≢list |
| 317 | + :EndIf |
| 318 | + :Else |
| 319 | + noOf←≢list |
| 320 | + :EndIf |
| 321 | + r←r⍪⊂(⍕noOf),' dependenc',((1+1<noOf)⊃'y was' 'ies were'),' loaded' |
308 | 322 | :EndIf |
309 | 323 | ∇ |
310 | 324 |
|
|
322 | 336 | :If 1 P.##.C.YesOrNo q |
323 | 337 | tempFolder←P.##.F.GetTempSubDir'Cider' |
324 | 338 | res←⎕SE.Tatin.InstallPackages('[tatin]aplteam-Cider')tempFolder |
325 | | - targetFolder←(1 P.GetProgramFilesFolder''),'/CiderTatin/Cider' |
| 339 | + targetFolder←1 P.GetProgramFilesFolder'/CiderTatin/Cider' |
326 | 340 | {}P.##.F.RmDirByForce targetFolder |
327 | 341 | 3 ⎕MKDIR targetFolder |
328 | 342 | targetFolder ⎕NMOVE⍠1⊣tempFolder,'/*' |
|
335 | 349 | :AndIf 1 P.##.C.YesOrNo q |
336 | 350 | {}P.##.F.RmDirByForce folder |
337 | 351 | :EndIf |
| 352 | + folder←1 P.GetProgramFilesFolder'/StartupSession/CiderTatin/Cider' |
| 353 | + :If P.##.F.IsDir folder |
| 354 | + q←'RemoveCiderFromStartupSession@There is a folder Cider/ in ',('expand'P.##.F.NormalizePath folder,'\..'),'/',⎕UCS 13 |
| 355 | + q,←'Shall this folder be removed?' |
| 356 | + :AndIf 1 P.##.C.YesOrNo q |
| 357 | + {}P.##.F.RmDirByForce folder |
| 358 | + :EndIf |
338 | 359 | :Else |
339 | 360 | r←'Cancelled by user' |
340 | 361 | :EndIf |
|
623 | 644 | r,←⊂'In case the project''s config file does not carry a definition for a Tatin dependency folder' |
624 | 645 | r,←⊂'the user is given the oportunity to edit the config file.' |
625 | 646 | r,←⊂'' |
626 | | - r,←⊂'-development By default the packages are added as project dependencies. The -development' |
627 | | - r,←⊂' flag can be used to make it a development dependency instead.' |
628 | | - r,←⊂'-target= Use this to specify a target namespace. This is added to the "dependencies" or the' |
629 | | - r,←⊂' "dependencies_dev" parameter with a "=". If there is already such a target namespace' |
630 | | - r,←⊂' an error is thrown; you need to edit the project''s config file in such a case.' |
| 647 | + r,←⊂'-development By default the packages are added as project dependencies. The -development' |
| 648 | + r,←⊂' flag can be used to make them development dependencies instead.' |
| 649 | + r,←⊂'-target= Use this to specify a target namespace. This is added to the "dependencies" or the' |
| 650 | + r,←⊂' "dependencies_dev" parameter with a "=". If there is already such a target namespace' |
| 651 | + r,←⊂' an error is thrown; you need to edit the project''s config file in such a case.' |
631 | 652 | :Case ⎕C'ListNuGetDependencies' |
632 | 653 | r,←⊂'Lists all NuGet dependencies in the Nuget dependency folder.' |
633 | 654 | r,←⊂'' |
|
870 | 891 | :If 0=(⍎config.CIDER.parent).⎕NC config.CIDER.projectSpace |
871 | 892 | config.CIDER.projectSpace(⍎config.CIDER.parent).⎕NS'' |
872 | 893 | :Else |
873 | | - :If 0<≢((⍎config.CIDER.parent)⍎config.CIDER.projectSpace).⎕NL⍳16 |
| 894 | + :If 0<≢((⍎config.CIDER.parent)⍎config.CIDER.projectSpace).⎕NL 9~⍨⍳16 |
874 | 895 | :If 1<≢list←⊃P.##.F.Dir projectFolder |
875 | 896 | :OrIf 'cider.config'≢{1≠≢⍵:0 ⋄ ⊃,/1↓⎕NPARTS⊃⍵}list |
876 | 897 | :If batch |
|
939 | 960 | config P.##.Put_JSON5 filename |
940 | 961 | ∇ |
941 | 962 |
|
942 | | - ∇ r←GetUserConfigFileTemplate;folder;filename |
943 | | - ⍝ Checks whether the user has already a personal config file template. |
944 | | - ⍝ If not the generic Cider config file template is copied into the user's Cider home folder, |
945 | | - ⍝ Eventually the template is returned. |
946 | | - ⎕trap←0'S' |
947 | | - ∘∘∘ ⍝TODO⍝ ⍝TODO⍝ |
948 | | - folder←P.GetCiderGlobalConfigHomeFolder |
949 | | - filename←folder',/cider.config.template' |
950 | | - :If ~P.##.F.Exists filename |
951 | | - :If 0<##.⎕NC'TatinVars' |
952 | | - filename ⎕NCOPY ##.TatinVars.HOME,'/cider.config.template' |
953 | | - :Else |
954 | | - filename ⎕NCOPY CiderConfig.HOME,'/cider.config.template' |
955 | | - :EndIf |
956 | | - :EndIf |
957 | | - r←⎕JSON⍠('Dialect' 'JSON5')⊣⊃⎕NGET filename |
958 | | - ∇ |
959 | | - |
960 | 963 | ∇ (opCode path)←OpenFileDialogBox caption;ref;res;filename |
961 | 964 | ⍝ opCodes: |
962 | 965 | ⍝ ¯1 = Cancelled by user |
|
0 commit comments