https://github.com/gochomugo/msu
A minimal Bash framework and CLI tool that makes writing, sharing and using bash scripts easy
https://github.com/gochomugo/msu
bash msu scripting shell terminal
Last synced: 4 months ago
JSON representation
A minimal Bash framework and CLI tool that makes writing, sharing and using bash scripts easy
- Host: GitHub
- URL: https://github.com/gochomugo/msu
- Owner: GochoMugo
- License: mit
- Created: 2015-05-20T14:26:25.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2025-12-19T17:40:44.000Z (6 months ago)
- Last Synced: 2025-12-22T07:33:59.814Z (6 months ago)
- Topics: bash, msu, scripting, shell, terminal
- Language: Shell
- Homepage:
- Size: 247 KB
- Stars: 12
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/contributing.md
- License: LICENSE
Awesome Lists containing this project
README
# msu
> A minimal Bash framework and CLI tool that makes writing, sharing
> and using bash scripts easy
[](https://github.com/GochoMugo/msu/actions/workflows/test.yml)
* [Features](#features)
* [Installation](#installation)
* [Documentation](#documentation)
* [Showcase of modules using `msu`][showcase]
* [Project principles](#project-principles)
* [License](#license)
* Introductory blog posts:
- [hack with msu](https://mugo.gocho.live/posts/hack-with-msu/)
- [very first post](https://mugo.gocho.live/posts/msu-introduction/)
## features
> **`msu` wishlist**
* [x] [easy installation](#installation)
* [x] self upgrade
* [x] small internal library
* [x] tested
* [x] supports external modules
* [x] auto-loading aliases from modules
* [x] manpages
* [ ] load/unload aliases
* [ ] error catching/handling
* [ ] bash completion
* [ ] compatibility for other shell types e.g. zsh
## installation
There are different ways of installing `msu`.
1. The preferred way is to use the **OFFICIAL RELEASE**. Download
the latest tarball at https://github.com/GochoMugo/msu/releases/latest:
```bash
$ tar xvf msu-x.x.x.tar.gz
$ cd msu-x.x.x/
$ ./install.sh
```
1. **Manual installing** by cloning this repo and running the
`install.sh` script.
```bash
$ git clone https://github.com/GochoMugo/msu.git
$ cd msu/
$ ./install.sh
```
This method is preferable if you will be contributing to the
project. Note that this uses the master branch, possibly with
unreleased changes. Also, the manpages are **not** installed.
See further [installation instructions][installation].
## documentation
You can browse msu documentation from your terminal using `man`:
```bash
$ man 1 msu # command
$ man 3 msu # library
```
A guide for [contributing to msu][contributing] is also available.
## project principles
1. **Little added complexity.** `msu` should **not** warrant the user to learn scripting all over again. An existing script should be converted into a module with less effort.
1. **Minimal**. `msu` core should be as little as possible. How? Use common algorithms and data structures. Avoid doing something too fancy.
1. **Highly configurable**. Using environment variables and command-line switches, `msu` should be configurable in all its operations, including installation.
## license
__The MIT License (MIT)__
Copyright © 2015 GochoMugo
[contributing]:https://github.com/GochoMugo/msu/blob/master/docs/contributing.md "Contributing to msu"
[installation]:https://github.com/GochoMugo/msu/tree/master/docs/installation.md "msu installation"
[showcase]:https://github.com/GochoMugo/msu/wiki/Showcase "showcase of modules using msu"