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!
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).
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.
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.
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.
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.