mash/README.md
2024-07-30 11:21:27 +10:00

2.8 KiB

Max's Shell (mash)

A shell coded in Python. No reason :)

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!

So what even is Mash?

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

Features

  • 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)
  • Configurable (kind of)

Platform support

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, and a recent version of Python 3 is installed. 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.

Setup

Quick Setup

Copy this command into a terminal (so long as Bash is installed) curl https://maxwellj.xyz/mash/install.sh | sudo bash

Manual Setup

  1. Clone the repo

  2. Create the files .history.mash and .config/mash/mash.conf, and add configurations to your config file

  3. Run main.py

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.

Read more at https://git.maxwellj.xyz/max/mash/wiki/Configuration

Fun platforms Mash can run on (for no reason)

Mac OS X 10.6

  • Working? Yes

  • Workarounds needed? Install Python 3.12 through MacPorts

  • Issues? None

  • Script install? No

  • Practical? Not really

Haiku

  • Working? Yes

  • Workarounds needed? Manually put the config file in required location

  • Issues? None

  • Script install? No

  • Practical? Yes

Grok Learning

  • Working? Yes

  • Workarounds needed? Manually set the user variable in Mash, manually set config

  • Issues? There are limits set by Grok

  • Script install? No

  • Practical? No