2018-12-27 12:35:54 +00:00
|
|
|
<!-- vim: set et ts=2 sw=2 tw=80 : -->
|
|
|
|
|
|
|
|
# msh-console
|
|
|
|
|
|
|
|
Library that provides a bash-like command line interface for C++ programs.
|
|
|
|
|
|
|
|
## Abandoned
|
|
|
|
|
|
|
|
This was my first OOP project, so pardon the style and the conventions taken.
|
|
|
|
This project is currently unmantained.
|
|
|
|
|
|
|
|
## Features include:
|
|
|
|
|
|
|
|
* flag handling implemented with `popt.h`;
|
|
|
|
* creation of personalized commands in the same thread of the shell or in other
|
|
|
|
threads;
|
|
|
|
* basic shell functionalities, such as execution of other programs in the
|
|
|
|
system. This is implemented with `execvp()`.
|
|
|
|
* piping, implemented with `<unistd.h>` `pipe()` function. Code based on
|
|
|
|
https://stackoverflow.com/a/5207730.
|
|
|
|
|
|
|
|
## What is not actually included:
|
|
|
|
|
2016-04-23 11:03:53 +00:00
|
|
|
* advanced shell features, like:
|
2018-12-27 12:35:54 +00:00
|
|
|
* redirection,
|
|
|
|
* scripting,
|
|
|
|
* command history.
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
Code based on
|
|
|
|
["Write a Shell in C"](http://brennan.io/2015/01/16/write-a-shell-in-c/)
|
|
|
|
tutorial by Stephen Brennan. The code contains `stringtoargcargv.cpp`, a set of
|
|
|
|
functions written by Bernhard Eder
|
|
|
|
[here](http://web.archive.org/web/20121030075237/http://bbgen.net/blog/2011/06/string-to-argc-argv)
|
|
|
|
for parsing a string into `argc` and `argv`.
|
|
|
|
|
|
|
|
## Compiling
|
|
|
|
|
|
|
|
The library can be compiled as shared library with the CMakeLists.txt file
|
|
|
|
already in `msh-console-library/`.
|