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 >=