Skip to content

javanile/mush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎉 Exciting News 🎉
Release 0.3.0 on March 14, 2025!

Dear users and enthusiasts of our project,

We are thrilled to announce that the release 0.3.0 of our project is on its way, and there's a special reason to celebrate it! 🚀

Release Date: March 14th, on Pi Day (3.14) 🥳

This update will bring a slew of new features, improvements, and bug fixes, and we can't wait to share it with you.

Keep an eye on this repository for further details on the new features and upgrade instructions.

Thank you for your ongoing support and for being a part of our community. We look forward to celebrating with you on Pi Day! 🎈

Stay tuned!


🍄 Mush

autobuild ShellCheck

Mush is the shell package builder. Mush downloads your shell package’s dependencies, compiles your packages, makes distributable packages, and uploads them to GitHub, as public community’s package registry.

This project is mostly inspired by Rust and Cargo!

Supported Shells

We try to do everything possible to ensure maximum compatibility with these platforms

bash bosh busybox dash ksh mksh posh yash zsh

Documentation

To start using Mush, learn more at the Mush website.

Demo

mush

Local Demo

Create a new demo package on your system with the following command

curl https://mush.javanile.org/demo | bash

Add your custom code to src/main.sh or src/utils/module.sh files then run it with

cd demo && ./bin/mush run 

In case you are ready to release your package, type the following command

cd demo && ./bin/mush build --release

Cheat Sheet

This cheatsheet provides an overview of essential keywords used in the Mush scripting language and their purposes.

  • module: Loads a module, encapsulating code and allowing for modularity. A module can be a single file or a folder containing a module.sh file.

  • public: Marks a submodule as accessible from outside the module.

  • extern package: Specifies an external package or dependency to be used.

  • embed: Includes external files or resources into the Mush codebase.

For further details, please consult the Reference documentation.

Contributing

See CONTRIBUTING.md in the repo, obviously pull-request are welcome.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Francesco Bianco via bianco@javanile.org. All security vulnerabilities will be promptly addressed.

Community & Questions

To interact with us, you can find us in the following ways:

  • GitHub Issues: Report a bug or raise a feature request to the Mush core team
  • Mush on Discord: Join the #mush channel on the Javanile Discord community
  • StackOverflow Tag: See existing Q&A for BASH and Unit Testing. We look at them often

License

Mush is open-sourced software licensed under the MIT license.