blocknums⊔𝕩
}
+Prep←{
+ 1↓(+`{"$ "≡2↑𝕩}¨𝕩)⊔𝕩
+}
+
FS←{𝕤
cwd←⟨⟩
+ nothing←⟨0,2⟩⥊⟨⟩ # 0 by 23 array, to return from "cd"
Exec⇐{
- 𝕊⟨"cd", "/"⟩: cwd↩⟨⟩;
- 𝕊⟨"cd", ".."⟩: cwd 1⊸↓↩;
- 𝕊⟨"cd", dir⟩: cwd ⟨dir⟩⊸∾↩
+ ⟨⟩𝕊⟨"cd", "/"⟩: cwd↩⟨⟩, nothing;
+ ⟨⟩𝕊⟨"cd", ".."⟩: cwd 1⊸↓↩, nothing;
+ ⟨⟩𝕊⟨"cd", dir⟩: cwd ⟨dir⟩⊸∾↩, nothing;
+ input𝕊⟨"ls"⟩: >{𝕊⟨size,name⟩:⟨size,⟨name⟩∾cwd⟩}∘{(' '=𝕩)Split𝕩}¨input
}
- Cmd⇐{Exec (' '=𝕩)Split𝕩}
+ Cmd⇐{𝕨 Exec 1↓(' '=𝕩)Split𝕩}
}
+
+Main←{
+ dev←FS @
+ files←∾{(1↓𝕩)dev.Cmd(⊑𝕩)}¨𝕩
+}
+
+•Show Main Prep •file.Lines ⊑•args