mash/README.md

62 lines
3.4 KiB
Markdown
Raw Normal View History

2024-07-03 12:19:40 +10:00
# Max's Shell (mash)
2024-07-03 11:46:56 +10:00
2024-07-03 12:19:40 +10:00
A shell coded in Python. No reason :)
2024-07-03 12:22:31 +10:00
Just bored in class one day so I started to code this. Will have some basic commands in built, and as it is coded in Python you should be able to have a similar terminal experience anywhere!
2024-07-04 17:31:28 +10:00
## So what even is Mash?
2024-07-03 15:00:02 +10:00
2024-07-04 17:31:28 +10:00
Mash is a shell (like sh, bash, fish, or zsh) which has been coded in Python by me. At the moment, Mash is still in a very early alpha stage. (As in it "works", but there's no guarantee that it *will* work.) There's a few built in commands (mls for ls, and mat for cat) to allow for higher consistency across different systems, but these are very basic (just use your system-bundled versions kind of basic).
2024-07-03 12:22:31 +10:00
2024-07-04 17:31:28 +10:00
## Features
2024-07-15 09:41:16 +10:00
2024-07-04 17:31:28 +10:00
* Coded in Python, meaning you can quickly make a change to the code in real time
* Colourful out of the box
* Built in ls (mls) and cat (mat)
* Cross-platform (see below for details)
2024-07-11 17:06:31 +10:00
* Configurable (kind of)
2024-07-03 12:22:31 +10:00
2024-07-04 17:31:28 +10:00
## Platform support
2024-07-03 12:22:31 +10:00
2024-07-04 17:31:28 +10:00
Mash has been developed and tested on Arch Linux (btw), so should work as intended there. However, Mash should run anywhere so long as there is a UNIX-like filesystem, a recent version of Python 3 is installed and the `colorama` Pip package is avaliable (providing the colours). This means macOS, most Linux distros, and most UNIX-like OSes should work without too much modification.
**However, Windows support is very hit and miss. Don't see this as a Powershell replacement.** Yes, I know Powershell and the regular Command Prompt suck, but for now don't expect good support. Running programs is tested and working, however using directories gets a bit messy due to the differences between UNIX-like and NT design.
2024-07-11 17:06:31 +10:00
2024-07-15 09:41:16 +10:00
## Setup
2024-07-15 12:45:31 +10:00
### Quick Setup
2024-07-15 12:46:12 +10:00
Copy this command into a terminal (so long as Bash is installed) `curl https://maxwellj.xyz/mash/install.sh | sudo bash`
2024-07-15 12:45:31 +10:00
Make sure `colorama` is installed with Pip or your distro's package manager (usually as python-colorama), as this is what currently provides the colours for Mash. This should be changed in future.
### Manual Setup
2024-07-15 09:41:16 +10:00
1. Clone the repo
2024-07-15 12:45:31 +10:00
2. Create the files .history.mash and .config/mash/mash.conf, and add configurations to your config file
2024-07-15 09:41:16 +10:00
2024-07-15 12:45:31 +10:00
3. Make sure `colorama` is installed with Pip or your distro's package manager (usually as python-colorama), as this is what currently provides the colours for Mash.
2024-07-15 09:41:16 +10:00
4. Run main.py
2024-07-11 17:06:31 +10:00
## Configuration (EARLY BETA)
Mash is a "configurable" shell. You can customise some parts of it to make it your own. It uses a syntax that is sort of inspired by CSS (emphasis on the sort of), but I just coded whatever felt easiest to code.
### Writing a config file
Mash will automatically look for a config file at `(home directory)/.config/mash/mash.conf`, and if one is not found, it will copy one from `/etc/mash/mash.conf`. If neither of these exist, it crashes (for now). The syntax isn't that hard to understand, but may change in the future if I feel like it.
To write a valid line of Mash syntax, type:
`thingToConfigure:configurationOption,`
Mash looks for a colon in every word, and if it is found, that is recognised as an option for configuration. **For now, don't type a space between the colon and the next option.** After your custom option, the comma is used to signal the end of configuring that option. You can either start typing on a new line, or type **without a space** after the comma.
### Valid configuration options
2024-07-11 17:06:59 +10:00
* `motd:(string),`: Set your MOTD when opening Mash.
2024-07-15 10:04:57 +10:00
* `mashPath:/bin;/usr/bin`: Set directories in Mash's path
2024-07-11 17:06:31 +10:00
More should be added in future.