galaxie-shell


Namegalaxie-shell JSON
Version 0.2.5 PyPI version JSON
download
home_page
SummaryGalaxie Shell is a autonomous shell ready for CI and low tech OS
upload_time2024-03-19 00:49:04
maintainer
docs_urlNone
authorTuuux
requires_python>=3.0
license
keywords galaxie shell posix micropython
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](http://www.wtfpl.net/about/) [![Documentation Status](https://readthedocs.org/projects/galaxie-shell/badge/?version=latest)](https://galaxie-shell.readthedocs.io/en/latest/?badge=latest)
```text
                  ________        __                 __        
                 /  _____/_____  |  | _____  ___  __|__| ____  
                /   \  ___\__  \ |  | \__  \ \  \/  /  |/ __ \ 
                \    \_\  \/ __ \|  |__/ __ \_>    <|  \  ___/_
                 \________(______/____(______/__/\__\__|\_____/
```
# GLXSH - Galaxie Shell
## The Project
The goal of Galaxie-Shell is to provide a POSIX Shell for micro system like pyBoard or MicroPi.

at end it should be possible to execute POSIX Script Shell on MicroPython (Long time target).

The application Galaxie Shell is a Read Eval Print Loop (`RELP <https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_) write with `python <https://www.python.org/>`_ based on top of pycopy-lib `cmd <https://github.com/pfalcon/pycopy-lib/tree/master/cmd>`_ it self build on top of MicroPython.

The project implement POSIX Standard from the OpenGroup
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/

The OpenGroup permit a implementation where all utilities are builtins command, and that is what Galaxie-Shell do.
I code it, because i like understand how a system work. Copy the code , use it , that is here for the public community.


## Links

  Codeberg: https://codeberg.org/Tuuux/galaxie-shell/

  Read the Doc: https://galaxie-shell.readthedocs.io/

  PyPI: https://pypi.org/project/galaxie-shell/

  PyPI Test: https://test.pypi.org/project/galaxie-shell/

  Wokwi: https://wokwi.com/projects/312818372713644610

## All ready implemented features

* Totally autonomous All in One shell
* Capability to build a **one-file** static binary file
* Can load a script file as argument
* Can execute command from passing arguments
* Interactive shell when call without arguments
* Builtins POSIX command (basename, cat, cd, mkdir, pwd, rmdir, uname, etc ...)
* Exit status for build in or external command
* POSIX Pipe
* Alias and UnAlias
* PS1 env var can be export

## Application

* Use on front of a [Unikernel](https://fr.wikipedia.org/wiki/Unikernel)
* Use on front of a minimal `Alpine Linux <https://alpinelinux.org/>`_ or `OpenWrt <https://openwrt.org/>`_
* Simplify CI CD
* Use a MicroPython device as a Unix host

## Installation
### Installation via pip
```bash
pip install galaxie-shell
```

### Installation via pip (test)
```bash
pip install -i https://test.pypi.org/simple/ galaxie-shell
```

## Next Step:

Now you can the start the **glxsh** entry point
On Unix host with MicroPython

```text
  $> micropython ./glxsh
  ******************************* GLXUSH V0.2.5 **********************************

  LICENSE WTFPL V2
  LOADER MICROPYTHON V1.18.0 MPY 2566
  EXEC PYTHON V3.4.0
  1.98MB MEMORY SYSTEM
  1.91MB FREE

  >
```
On Debian host with Python

```text
  ******************************* GLXSH V0.2.5 **********************************

  LICENSE WTFPL V2
  LOADER CPYTHON 3.9.2.FINAL.0
  EXEC PYTHON V3.9.2 (DEFAULT, FEB 28 2021, 17:03:44)
  [GCC 10.2.1 20210110]
  7.60GB RAM SYSTEM
  245.14MB FREE

  >
```

For each command you can get help with ``man`` command line, by exemple for ``ls`` help use ``man ls``, or call ``man`` without argument for know builtin commands list.

**Note**:
Internal builtins commands have precedence, if a command is not Internal builtins commands then glxshell , call it as subprocess.

```text
  > man

    Documented commands (type man <topic>):
    =======================================
    alias     cd     cp    dirname  env    head  mkdir  rm     tail  touch  umask
    basename  chmod  date  du       exit   ls    mv     rmdir  tee   true   unalias
    cat       clear  df    echo     false  man   pwd    sleep  time  tty    uname
```



## Builtins implemented utilities
* `alias <https://galaxie-shell.readthedocs.io/en/latest/man/alias.html>`_
* `basename <https://galaxie-shell.readthedocs.io/en/latest/man/basenme.html>`_
* `cat <https://galaxie-shell.readthedocs.io/en/latest/man/cat.html>`_
* `cd <https://galaxie-shell.readthedocs.io/en/latest/man/cd.html>`_
* `chmod <https://galaxie-shell.readthedocs.io/en/latest/man/chmod.html>`_
* `clear <https://galaxie-shell.readthedocs.io/en/latest/man/clear.html>`_
* `cp <https://galaxie-shell.readthedocs.io/en/latest/man/cp.html>`_
* `date <https://galaxie-shell.readthedocs.io/en/latest/man/date.html>`_
* `df <https://galaxie-shell.readthedocs.io/en/latest/man/df.html>`_
* `dirname <https://galaxie-shell.readthedocs.io/en/latest/man/dirname.html>`_
* `du <https://galaxie-shell.readthedocs.io/en/latest/man/du.html>`_
* `echo <https://galaxie-shell.readthedocs.io/en/latest/man/echo.html>`_
* `env <https://galaxie-shell.readthedocs.io/en/latest/man/env.html>`_
* `exit <https://galaxie-shell.readthedocs.io/en/latest/man/exit.html>`_
* `false <https://galaxie-shell.readthedocs.io/en/latest/man/false.html>`_
* `head <https://galaxie-shell.readthedocs.io/en/latest/man/head.html>`_
* `ls <https://galaxie-shell.readthedocs.io/en/latest/man/ls.html>`_
* `mkdir <https://galaxie-shell.readthedocs.io/en/latest/man/mkdir.html>`_
* `mv <https://galaxie-shell.readthedocs.io/en/latest/man/mv.html>`_
* `pwd <https://galaxie-shell.readthedocs.io/en/latest/man/pwd.html>`_
* `rm <https://galaxie-shell.readthedocs.io/en/latest/man/rm.html>`_
* `rmdir <https://galaxie-shell.readthedocs.io/en/latest/man/rmdir.html>`_
* `sleep <https://galaxie-shell.readthedocs.io/en/latest/man/sleep.html>`_
* `tail <https://galaxie-shell.readthedocs.io/en/latest/man/tail.html>`_
* `tee <https://galaxie-shell.readthedocs.io/en/latest/man/tee.html>`_
* `time <https://galaxie-shell.readthedocs.io/en/latest/man/time.html>`_
* `touch <https://galaxie-shell.readthedocs.io/en/latest/man/touch.html>`_
* `true <https://galaxie-shell.readthedocs.io/en/latest/man/true.html>`_
* `tty <https://galaxie-shell.readthedocs.io/en/latest/man/tty.html>`_
* `umask <https://galaxie-shell.readthedocs.io/en/latest/man/umask.html>`_
* `unalias <https://galaxie-shell.readthedocs.io/en/latest/man/unalias.html>`_
* `uname <https://galaxie-shell.readthedocs.io/en/latest/man/uname.html>`_

## Roadmap
* implement the POSIX utility as describe by the OpenGroup
* Background Task
* Implement reserved POSIX environment variable name (HOME, PS1, etc)
* deal with **env** and **export**
* better one-file binary distribution
* Load setting from a configuration file
* Have no dependency from outside

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "galaxie-shell",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.0",
    "maintainer_email": "",
    "keywords": "Galaxie,SHELL,POSIX,Micropython",
    "author": "Tuuux",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/a5/ea/2ceb24b2cdb8a7e1f5c78cc8af53611a6ee2451127aa7cf652ef62aa0b88/galaxie-shell-0.2.5.tar.gz",
    "platform": null,
    "description": "[![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](http://www.wtfpl.net/about/) [![Documentation Status](https://readthedocs.org/projects/galaxie-shell/badge/?version=latest)](https://galaxie-shell.readthedocs.io/en/latest/?badge=latest)\n```text\n                  ________        __                 __        \n                 /  _____/_____  |  | _____  ___  __|__| ____  \n                /   \\  ___\\__  \\ |  | \\__  \\ \\  \\/  /  |/ __ \\ \n                \\    \\_\\  \\/ __ \\|  |__/ __ \\_>    <|  \\  ___/_\n                 \\________(______/____(______/__/\\__\\__|\\_____/\n```\n# GLXSH - Galaxie Shell\n## The Project\nThe goal of Galaxie-Shell is to provide a POSIX Shell for micro system like pyBoard or MicroPi.\n\nat end it should be possible to execute POSIX Script Shell on MicroPython (Long time target).\n\nThe application Galaxie Shell is a Read Eval Print Loop (`RELP <https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_) write with `python <https://www.python.org/>`_ based on top of pycopy-lib `cmd <https://github.com/pfalcon/pycopy-lib/tree/master/cmd>`_ it self build on top of MicroPython.\n\nThe project implement POSIX Standard from the OpenGroup\nhttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/\n\nThe OpenGroup permit a implementation where all utilities are builtins command, and that is what Galaxie-Shell do.\nI code it, because i like understand how a system work. Copy the code , use it , that is here for the public community.\n\n\n## Links\n\n  Codeberg: https://codeberg.org/Tuuux/galaxie-shell/\n\n  Read the Doc: https://galaxie-shell.readthedocs.io/\n\n  PyPI: https://pypi.org/project/galaxie-shell/\n\n  PyPI Test: https://test.pypi.org/project/galaxie-shell/\n\n  Wokwi: https://wokwi.com/projects/312818372713644610\n\n## All ready implemented features\n\n* Totally autonomous All in One shell\n* Capability to build a **one-file** static binary file\n* Can load a script file as argument\n* Can execute command from passing arguments\n* Interactive shell when call without arguments\n* Builtins POSIX command (basename, cat, cd, mkdir, pwd, rmdir, uname, etc ...)\n* Exit status for build in or external command\n* POSIX Pipe\n* Alias and UnAlias\n* PS1 env var can be export\n\n## Application\n\n* Use on front of a [Unikernel](https://fr.wikipedia.org/wiki/Unikernel)\n* Use on front of a minimal `Alpine Linux <https://alpinelinux.org/>`_ or `OpenWrt <https://openwrt.org/>`_\n* Simplify CI CD\n* Use a MicroPython device as a Unix host\n\n## Installation\n### Installation via pip\n```bash\npip install galaxie-shell\n```\n\n### Installation via pip (test)\n```bash\npip install -i https://test.pypi.org/simple/ galaxie-shell\n```\n\n## Next Step:\n\nNow you can the start the **glxsh** entry point\nOn Unix host with MicroPython\n\n```text\n  $> micropython ./glxsh\n  ******************************* GLXUSH V0.2.5 **********************************\n\n  LICENSE WTFPL V2\n  LOADER MICROPYTHON V1.18.0 MPY 2566\n  EXEC PYTHON V3.4.0\n  1.98MB MEMORY SYSTEM\n  1.91MB FREE\n\n  >\n```\nOn Debian host with Python\n\n```text\n  ******************************* GLXSH V0.2.5 **********************************\n\n  LICENSE WTFPL V2\n  LOADER CPYTHON 3.9.2.FINAL.0\n  EXEC PYTHON V3.9.2 (DEFAULT, FEB 28 2021, 17:03:44)\n  [GCC 10.2.1 20210110]\n  7.60GB RAM SYSTEM\n  245.14MB FREE\n\n  >\n```\n\nFor each command you can get help with ``man`` command line, by exemple for ``ls`` help use ``man ls``, or call ``man`` without argument for know builtin commands list.\n\n**Note**:\nInternal builtins commands have precedence, if a command is not Internal builtins commands then glxshell , call it as subprocess.\n\n```text\n  > man\n\n    Documented commands (type man <topic>):\n    =======================================\n    alias     cd     cp    dirname  env    head  mkdir  rm     tail  touch  umask\n    basename  chmod  date  du       exit   ls    mv     rmdir  tee   true   unalias\n    cat       clear  df    echo     false  man   pwd    sleep  time  tty    uname\n```\n\n\n\n## Builtins implemented utilities\n* `alias <https://galaxie-shell.readthedocs.io/en/latest/man/alias.html>`_\n* `basename <https://galaxie-shell.readthedocs.io/en/latest/man/basenme.html>`_\n* `cat <https://galaxie-shell.readthedocs.io/en/latest/man/cat.html>`_\n* `cd <https://galaxie-shell.readthedocs.io/en/latest/man/cd.html>`_\n* `chmod <https://galaxie-shell.readthedocs.io/en/latest/man/chmod.html>`_\n* `clear <https://galaxie-shell.readthedocs.io/en/latest/man/clear.html>`_\n* `cp <https://galaxie-shell.readthedocs.io/en/latest/man/cp.html>`_\n* `date <https://galaxie-shell.readthedocs.io/en/latest/man/date.html>`_\n* `df <https://galaxie-shell.readthedocs.io/en/latest/man/df.html>`_\n* `dirname <https://galaxie-shell.readthedocs.io/en/latest/man/dirname.html>`_\n* `du <https://galaxie-shell.readthedocs.io/en/latest/man/du.html>`_\n* `echo <https://galaxie-shell.readthedocs.io/en/latest/man/echo.html>`_\n* `env <https://galaxie-shell.readthedocs.io/en/latest/man/env.html>`_\n* `exit <https://galaxie-shell.readthedocs.io/en/latest/man/exit.html>`_\n* `false <https://galaxie-shell.readthedocs.io/en/latest/man/false.html>`_\n* `head <https://galaxie-shell.readthedocs.io/en/latest/man/head.html>`_\n* `ls <https://galaxie-shell.readthedocs.io/en/latest/man/ls.html>`_\n* `mkdir <https://galaxie-shell.readthedocs.io/en/latest/man/mkdir.html>`_\n* `mv <https://galaxie-shell.readthedocs.io/en/latest/man/mv.html>`_\n* `pwd <https://galaxie-shell.readthedocs.io/en/latest/man/pwd.html>`_\n* `rm <https://galaxie-shell.readthedocs.io/en/latest/man/rm.html>`_\n* `rmdir <https://galaxie-shell.readthedocs.io/en/latest/man/rmdir.html>`_\n* `sleep <https://galaxie-shell.readthedocs.io/en/latest/man/sleep.html>`_\n* `tail <https://galaxie-shell.readthedocs.io/en/latest/man/tail.html>`_\n* `tee <https://galaxie-shell.readthedocs.io/en/latest/man/tee.html>`_\n* `time <https://galaxie-shell.readthedocs.io/en/latest/man/time.html>`_\n* `touch <https://galaxie-shell.readthedocs.io/en/latest/man/touch.html>`_\n* `true <https://galaxie-shell.readthedocs.io/en/latest/man/true.html>`_\n* `tty <https://galaxie-shell.readthedocs.io/en/latest/man/tty.html>`_\n* `umask <https://galaxie-shell.readthedocs.io/en/latest/man/umask.html>`_\n* `unalias <https://galaxie-shell.readthedocs.io/en/latest/man/unalias.html>`_\n* `uname <https://galaxie-shell.readthedocs.io/en/latest/man/uname.html>`_\n\n## Roadmap\n* implement the POSIX utility as describe by the OpenGroup\n* Background Task\n* Implement reserved POSIX environment variable name (HOME, PS1, etc)\n* deal with **env** and **export**\n* better one-file binary distribution\n* Load setting from a configuration file\n* Have no dependency from outside\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Galaxie Shell is a autonomous shell ready for CI and low tech OS",
    "version": "0.2.5",
    "project_urls": {
        "Homepage": "https://codeberg.org/Tuuux/galaxie-shell",
        "Issues": "https://codeberg.org/Tuuux/galaxie-shell/-/issues",
        "Readthedocs": "http://galaxie-shell.readthedocs.io"
    },
    "split_keywords": [
        "galaxie",
        "shell",
        "posix",
        "micropython"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5ea2ceb24b2cdb8a7e1f5c78cc8af53611a6ee2451127aa7cf652ef62aa0b88",
                "md5": "8e874be0931b8c7f0d0a2fbd00da8ced",
                "sha256": "232bb2c635278845ce49efae9d28f9b4621a2ddb6f3c6575f048d679afc453c6"
            },
            "downloads": -1,
            "filename": "galaxie-shell-0.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "8e874be0931b8c7f0d0a2fbd00da8ced",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.0",
            "size": 54599,
            "upload_time": "2024-03-19T00:49:04",
            "upload_time_iso_8601": "2024-03-19T00:49:04.384972Z",
            "url": "https://files.pythonhosted.org/packages/a5/ea/2ceb24b2cdb8a7e1f5c78cc8af53611a6ee2451127aa7cf652ef62aa0b88/galaxie-shell-0.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-19 00:49:04",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "Tuuux",
    "codeberg_project": "galaxie-shell",
    "lcname": "galaxie-shell"
}
        
Elapsed time: 0.53504s