This is a POSIX shell written in Haskell.
Just type
cabal build
cabal test # optional to run tests
cabal install
kell
The following features are implemented
- Line based Interpreter
- parses a line and if it the parser fails with unexpected end of input tries to fetch an additional one
- distinguish interactive mode (prompt and no exit on a large class of errors)
- Word expansions:
- Parameter expansion
- Command substition
- Arithmetic expansion
- Variable assignments
- Input/Output redirections
- Execution of simple commands
- And-Or lists
- Asynchronous command execution (very basic only)
- Control structures:
- If conditionals
- While loops
- Some unit testing testing standard out and exit status of scripts against the shell in CI of Github
Not implemented, but soon to be:
- Tilde expansions
- More correct error handling
- Signal traps
- Built-in utilities
- Pattern matching
- Here-Documents
- Use a different string format like Bytestring or Text, that is not lazy and thus slow
- Source documentation with haddock
The shell can be crosscompiled to target the Sortix operating system with this ghc-toolchain.
Please note, that you will need statically linked versions of gmp and iconv on your host-system for this to work.