|
1 | | -:Class Cider_UC |
| 1 | +:Class Cider_UC |
2 | 2 | ⍝ User Command class for the project manager "Cider" |
3 | 3 | ⍝ Kai Jaeger |
4 | | -⍝ 2023-08-02 |
| 4 | +⍝ 2023-08-05 |
5 | 5 |
|
6 | 6 |
|
7 | 7 |
|
|
231 | 231 |
|
232 | 232 | ∇ r←ListAliases Args |
233 | 233 | :If Args.edit |
234 | | - EditAliasFile ⍬ |
235 | | - r←ProcessAliases 0 0 0 |
| 234 | + :If 0=≢r←EditAliasFile ⍬ |
| 235 | + r←ProcessAliases 0 0 0 |
| 236 | + :EndIf |
236 | 237 | :Else |
237 | 238 | r←ProcessAliases Args.(prune edit quiet) |
238 | 239 | :EndIf |
|
852 | 853 | ∇ |
853 | 854 |
|
854 | 855 | ∇ {r}←EditAliasFile dummy;filename;data_;Local;aliases;b;report;buff;b2;b3;flag;b4;b5;aliases_;b6 |
855 | | - r←⍬ |
| 856 | + r←'' |
856 | 857 | filename←P.GetCiderAliasFilename |
857 | 858 | :If ~⎕NEXISTS filename |
858 | 859 | 3 ⎕MKDIR 1⊃⎕NPARTS filename |
859 | 860 | (⊂'')⎕NPUT filename |
860 | 861 | :EndIf |
861 | 862 | aliases_←P.GetAliasFileContent |
862 | | - aliases←⍕aliases_ |
863 | | - aliases_←⊃¨{⍺,'=',⍵}/¨↓aliases_ |
864 | | - :Repeat |
865 | | - ⎕ED'aliases' |
866 | | - aliases←{'⍝'∊⍵:⍵↑⍨¯1+⍵⍳'⍝' ⋄ ⍵}¨↓aliases ⍝ Cider might inject comments to highlight problems, see below. |
867 | | - aliases←(aliases∨.≠¨' ')⌿aliases |
868 | | - aliases←{b←' '=⍵ ⋄ ⍵/⍨~(∧\b)∨(⌽∧\⌽b)∨' '⍷⍵}¨aliases |
869 | | - aliases←{' '(≠⊆⊢)⍵}¨aliases |
870 | | - aliases←⊃¨{⍺,'=',⍵}/¨aliases |
871 | | - flag←0 |
872 | | - :If aliases≢aliases_ |
873 | | - aliases_/⍨←({⍵↑⍨¨⍵⍳¨'='}aliases_)∊{⍵↑⍨¨⍵⍳¨'='}aliases ⍝ Get rid of deleted ones |
874 | | - report←(≢aliases)⍴⊂'' |
875 | | - :If ∨/b←~1=aliases+.=¨'=' |
876 | | - (b/report)←⊂' ⍝ Does not carry exactly one "="' |
877 | | - :EndIf |
878 | | - buff←↑{'='(≠⊆⊢)⍵}¨(~b)/aliases |
879 | | - :If ∨/b2←~{∧/⍵∊⎕A,(⎕C ⎕A),⎕D,'-'}¨buff[;1] |
880 | | - b3←(~b)\b2 |
881 | | - (b3/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'An alias must consist of nothing but A-Z, a-z, 0-9 and a hyphen' |
882 | | - :EndIf |
883 | | - :If ∨/b2←~⎕NEXISTS buff[;2] |
884 | | - b3←(~b)\b2 |
885 | | - (b3/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'Folder does not exist' |
886 | | - :EndIf |
887 | | - :If ∨/b4←(~b2)\~⎕NEXISTS(~b2)/buff[;2],¨⊂'/cider.config' |
888 | | - b5←(~b)\b4 |
889 | | - (b5/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'Folder does not contain a Cider config file' |
890 | | - :EndIf |
891 | | - :If {(≢⍵)>≢∪⍵}buff←{⍵↓⍨⍵⍳'='}¨aliases |
892 | | - b6←~{(⍳≢⍵)=⍵⍳⍵}buff |
893 | | - (b6/report)←⊂'⍝ Path has already an alias' |
894 | | - :EndIf |
895 | | - :If 0=≢∊report |
896 | | - flag←1 |
| 863 | + :If 0<≢aliases←⍕aliases_ |
| 864 | + aliases_←⊃¨{⍺,'=',⍵}/¨↓aliases_ |
| 865 | + :Repeat |
| 866 | + ⎕ED'aliases' |
| 867 | + aliases←{'⍝'∊⍵:⍵↑⍨¯1+⍵⍳'⍝' ⋄ ⍵}¨↓aliases ⍝ Cider might inject comments to highlight problems, see below. |
| 868 | + aliases←(aliases∨.≠¨' ')⌿aliases |
| 869 | + aliases←{b←' '=⍵ ⋄ ⍵/⍨~(∧\b)∨(⌽∧\⌽b)∨' '⍷⍵}¨aliases |
| 870 | + aliases←{' '(≠⊆⊢)⍵}¨aliases |
| 871 | + aliases←⊃¨{⍺,'=',⍵}/¨aliases |
| 872 | + flag←0 |
| 873 | + :If aliases≢aliases_ |
| 874 | + aliases_/⍨←({⍵↑⍨¨⍵⍳¨'='}aliases_)∊{⍵↑⍨¨⍵⍳¨'='}aliases ⍝ Get rid of deleted ones |
| 875 | + report←(≢aliases)⍴⊂'' |
| 876 | + :If ∨/b←~1=aliases+.=¨'=' |
| 877 | + (b/report)←⊂' ⍝ Does not carry exactly one "="' |
| 878 | + :EndIf |
| 879 | + buff←↑{'='(≠⊆⊢)⍵}¨(~b)/aliases |
| 880 | + :If ∨/b2←~{∧/⍵∊⎕A,(⎕C ⎕A),⎕D,'-'}¨buff[;1] |
| 881 | + b3←(~b)\b2 |
| 882 | + (b3/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'An alias must consist of nothing but A-Z, a-z, 0-9 and a hyphen' |
| 883 | + :EndIf |
| 884 | + :If ∨/b2←~⎕NEXISTS buff[;2] |
| 885 | + b3←(~b)\b2 |
| 886 | + (b3/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'Folder does not exist' |
| 887 | + :EndIf |
| 888 | + :If ∨/b4←(~b2)\~⎕NEXISTS(~b2)/buff[;2],¨⊂'/cider.config' |
| 889 | + b5←(~b)\b4 |
| 890 | + (b5/report){'⍝'∊⍺:⍺,'; ',⍵ ⋄ ⍺,' ⍝ ',⍵}←⊂'Folder does not contain a Cider config file' |
| 891 | + :EndIf |
| 892 | + :If {(≢⍵)>≢∪⍵}buff←{⍵↓⍨⍵⍳'='}¨aliases |
| 893 | + b6←~{(⍳≢⍵)=⍵⍳⍵}buff |
| 894 | + (b6/report)←⊂'⍝ Path has already an alias' |
| 895 | + :EndIf |
| 896 | + :If 0=≢∊report |
| 897 | + flag←1 |
| 898 | + :Else |
| 899 | + aliases←(1+⌈/≢¨aliases)↑¨aliases |
| 900 | + aliases←aliases{0=≢⍵:⍺ ⋄ ⍺,'⍝ ',⍵}¨report |
| 901 | + :EndIf |
| 902 | + :If ~flag |
| 903 | + aliases←⍕↑{'='(≠⊆⊢)⍵}¨aliases |
| 904 | + :EndIf |
897 | 905 | :Else |
898 | | - aliases←(1+⌈/≢¨aliases)↑¨aliases |
899 | | - aliases←aliases{0=≢⍵:⍺ ⋄ ⍺,'⍝ ',⍵}¨report |
900 | | - :EndIf |
901 | | - :If ~flag |
902 | | - aliases←⍕↑{'='(≠⊆⊢)⍵}¨aliases |
| 906 | + flag←1 |
903 | 907 | :EndIf |
904 | | - :Else |
905 | | - flag←1 |
906 | | - :EndIf |
907 | | - :Until flag |
908 | | - (⊂aliases)⎕NPUT filename 1 |
| 908 | + :Until flag |
| 909 | + (⊂aliases)⎕NPUT filename 1 |
| 910 | + :Else |
| 911 | + r←'There are no aliases defined in ',filename |
| 912 | + :EndIf |
909 | 913 | ∇ |
910 | 914 |
|
911 | 915 | YesOrNo←{⍺←⊢ ⋄ ⍺ ⎕SE.Cider.##.CommTools.YesOrNo ⍵} |
|
0 commit comments