Skip to content

peter-facko/ppsh

Repository files navigation

ppsh

A practice implementation of a Unix shell in modern C++.

Highlighted Features

  • different sources
    • CLI - ppsh --command "cmd"
    • script - ppsh script.sh
    • interactive - ppsh
  • pipes - cmd1 | cmd2
  • redirections - cmd1 <x >y; cmd2 >>z
  • builtins - cd and exit

Usage

Container

$ [docker|podman] run --interactive --tty docker.io/fackop/ppsh

Local

$ git clone https://github.com/papundekel/ppsh
$ cd ppsh
$ ./build.sh ./ <build-path>
$ cmake --install <build-path> --config Release --prefix <your-installation-path>
$ <your-installation-path>/ppsh

Runtime Dependencies

  • Boost >=1.74
  • readline >=8.2

Libraries Used

Development

Testing

Developing

Development Dependencies

  • Python >=3.8
  • pre-commit >=3.5
  • CMake >=3.21
  • GCC >=13
  • + all runtime dependencies
$ python -m venv .venv/
$ source .venv/bin/activate
$ pip install -r requirements-dev.txt
$ pre-commit install

Testing

$ pytest tests/tests --verbose --showlocals

Additional Dependencies

  • pytest >=7.4
  • pytest-asyncio-cooperative >=0.31
$ pip install -r tests/requirements.txt

About

A simple Unix shell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published