52 lines
1.0 KiB
Plaintext
Executable File
52 lines
1.0 KiB
Plaintext
Executable File
#!/usr/bin/env uiua
|
|
|
|
┌─╴CommandLine
|
|
# "~/..." ? cwd
|
|
Pretty ↚ ⊂@~▽⊸⬚@\0≠&var"HOME"
|
|
|
|
COLORS ↚ map ⊙≡°□ ≡°⊟ [
|
|
{"red" 1} {"green" 2} {"yellow" 3} {"blue" 4}
|
|
]
|
|
ColorCode ↚ ˜⊂"\x1b[0m" ⊂$"\x1b[1;3_m"
|
|
C ↚ (
|
|
⍣(⍩(ColorCode get ⊙COLORS) °"truecolor" &var"COLORTERM"
|
|
| ∘)
|
|
)
|
|
|
|
PS₁ ← &pf ⊂(C"blue" Pretty)(°&cd C"green" " λ ")
|
|
└─╴
|
|
|
|
┌─╴Commands
|
|
# ? {"cd" ...}
|
|
CD ← (
|
|
⍣(⍩(&cd&var"HOME") °0⧻↘1
|
|
| ⍩(⍣&cd(&ep"cd: invalid path") ⊢) °1⊸⧻↘1
|
|
| &ep"cd: too many arguments")
|
|
)
|
|
|
|
# ? {"exit" [code]}
|
|
Exit ← |1.0 (
|
|
⍣(⍩(&exit 0) °0⧻↘1
|
|
| ⍩(&exit ⋕°□⊢) °1⊸⧻↘1
|
|
| &ep"exit: too many arguments")
|
|
)
|
|
|
|
Otherwise ← (
|
|
⍣(°0&runi|&ep⊂"failed to run " /◇$"_ _")
|
|
)
|
|
└─╴
|
|
|
|
┌─╴Main
|
|
F ← |1.0 (
|
|
⊜□⊸≠@\s
|
|
⨂{"cd" "exit"}⊸⍣⊢""
|
|
⨬(Commands~CD
|
|
| Commands~Exit
|
|
| Commands~Otherwise)
|
|
CommandLine~PS₁
|
|
)
|
|
|
|
CommandLine~PS₁
|
|
&rlF 0
|
|
└─╴
|