Skip to content

progrhyme/shelp

Repository files navigation

release go-test

shelp

shelp is a Git-based package manager for shell scripts written in Go.

What is this for?

With shelp, you can do the followings:

  • Install any git repositories reachable with git command and organize them under $SHELP_ROOT directory. shelp treat them as packages
  • Add any executable files in a package into $PATH when shelp installs it
  • Load any shell script in a package easily by include function bundled in shelp
  • Manage what packages to be installed and how by the configuration file; and install them at once
  • Specify any git branch or tag or commit hash for a package to install

System Requirements

  • OS: Linux or macOS
  • git command

Supported Shells:

  • Bash, Zsh and most POSIX compatible shells
  • fish shell

Documentation

Full documentation is here: https://go-shelp.netlify.app/ .

Installation

There are several ways to install shelp :

  • Homebrew or Linuxbrew (using Tap)
  • Download from GitHub releases
  • go get (go command is required)

Choose one which is suitable for you.

Homebrew (Linuxbrew)

brew tap progrhyme/tap
brew install shelp

Download from Releases

Download latest binary from GitHub Releases and put it under one directory in $PATH entries.

Let's see typical commands to achieve this:

bin=/usr/local/bin  # Change to your favorite path
version=0.6.0       # Make sure this is the latest
os=darwin           # or "linux" is supported
curl -Lo $bin/shelp "https://github.com/progrhyme/shelp/releases/download/v${version}/shelp_${version}_${os}_x86_64"
chmod +x $bin/shelp

go get

Run the following:

go get github.com/progrhyme/shelp

Usage

Go to Documentation site.

Alternatives

There are other tools to manage shell scripts in modular way.
Pick up some of them here.

Software Supported Shells
basherpm/basher Bash, Zsh, fish shell
zplug Zsh
bpkg Bash
jorgebucaran/fisher fish shell

Special Thanks

basher inspired me to implement some features in this tool.

License

The MIT License.

Copyright (c) 2020 IKEDA Kiyoshi.