Create a library that implements shell-like syntax and functionality, e.g.ccsh::shell("ls", {"-lah", "--color=auto"}) | ccsh::shell("grep", "rwx")
- Add ccsh::shell wrappers for coreutils (e.g.
ccsh::ls()
forccsh::shell("ls")
) (partly done) Pipe this into a C++ interpreter, e.g. cling (https://root.cern.ch/cling), which makes a complete C++ shell.
-
Add a normal README.md
-
Add functions to make prompt customization easier, like bash PS1 format codes
-
Add
command operator<(command, command_line_functor);
-
Add command to fd conversion, for using commands as files, see https://www.gnu.org/software/coreutils/manual/coreutils.html#tee-invocation
-
Add
command operator<(command, int fd); and same for <, >>, >=, >>=
-
Add wildcard selection -
Make shell prompt customizable -
Catch signals in cling to behave like bash -
Change shell prompt from cling to ccsh, use # for root shell -
Add ccsh::source for sourcing commands -
Add a flag to command_base to run command in the dtor. -
Fix output redirection permission issue. -
Improve type safety viaboost::filesystem
(laterstd::filesystem
) andoperator""_p
-
Invent a fancy syntax for command switches. Giving them as strings (e.g.ccsh::ls("-lah")
) lacks static checking and type safety. -
The same goes for argument pairs likecssh::gcc("...", "-o", "file.o")
-
Add operator< for input redirection -
Add operator>= for error redirection -
Add operator>> for output appending -
Add operator>>= for error appending -
Addoperator||
andoperator&&
-
Addcommand operator>(command, std::vector<std::string>&);
and same for <, >>, >=, >>= -
Addcommand operator>(command, std::string&);
and same for <, >>, >=, >>= -
Addcommand operator>(command, command_raw_functor);
and same for <, >= -
Addcommand operator>(command, command_line_functor);
and same for >=