A New Simple Package Manager for Script Languages
A painless tool to manage installation and uninstallation

[Update: 2021–07–15]
Introduction
Most programming languages provide a package manager for easy installation. It can be apt, rpm, npm, yum, pip, brew, gem, cargo, go, composer, etc.
But sometimes there are small shell scripts you have to install manually. You have to clone or download a repo, make it executable, and add a path in your terminal configuration, such as .bashrc, zshrc, etc.
Awesome is the name of my simple script package manager. It installs a script from a GitHub repo to your macOS/Linux.
The scripting language is a series of commands that execute without the need for compiling. Bash, Lua, Node, Perl, Php, Python, Python3, Ruby are some of them. The Awesome package manager allows you to share your scripts with your team members for a quick view through a Github repository.
Let’s install the Awesome package manager.
Installing Awesome package manager
It is easy to install awesome.
If you use curl:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s installIf you use wget:
wget -qO - https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s installWe need to export the ~/.local/share/bin directory to the PATH variable. Run the following to add a PATH to your terminal config file, such as .zshrc or .bashrc.
echo 'export PATH=$HOME/.local/share/bin:$PATH' >> ~/.zshrcOr add the following to your terminal config file, such as .zshrc or .bashrc.
export PATH=$HOME/.local/share/bin:$PATHInstalling a package
To install a package, use the install option. When the main script and GitHub repository name is the same, use username/reponame:
awesome install shinokada/manop.git
Once you installed a repo, you can use it:
manop grep -v
-v, --invert-match
Invert the sense of matching, to select non-matching lines.You can use URL or HTTPS to install a repo:
# Using URL
awesome install https://github.com/shinokada/cleanit
# or using HTTPS
awesome install https://github.com/shinokada/abi.gitIn case the main script name is different from the repository name, use username/reponame mainscript as the previous example. Another example is tldr, it has the repository name tldr-sh-client:
awesome install raylee/tldr-sh-client tldrThe Bash snippets repository has many subfolders.
awesome install alexanderepstein/Bash-Snippets cheat/cheatAfter the username/reponame, add the subfolder/scriptname.
Removing a package
You can remove a package using rm:
awesome rm cleanitList packages
You can list installed packages using ls :
awesome lsUpdate a package
You can update a package using update:
awesome update gistartAlias
You can create an alias. First, install a package:
awesome install shinokdaa/backpack_install
Use -a to set an alias with the repo name and script name:
awesome alias bi backpack_install backpack_installThis creates an alias bi for backpack_install.
Multiple scripts
When a repo has multiple files, you can create aliases.
First, install the main script.
awesome install shinokada/script-examples php-example.phpThe script-examples repo has multiple scripts. Let’s create an alias with another script.
awesome alias ne script-examples node-example.jsor
awesome alias re script-examples ruby-example.rbWhen you run ne, it will run node-example.js and re run ruby-example.rb.
Git add, commit, push, and update
When you are working on a script, you need to run a bunch of Git commands and update the local package. Use push:
awesome push "your commit message"This will run Git add, commit, push, and awesome update commands.
Uninstalling Awesome
You can uninstall Awesome using curl:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install > tmp1 && bash tmp1 uninstall && rm tmp1Or wget:
wget -qO - https://raw.githubusercontent.com/shinokada/awesome/main/install > tmp1 && bash tmp1 uninstall && rm tmp1





