A cli tool to install tools based on your device info directly from github releases and keep them updated.
Project description
install-release ๐
install-release
is a cli tool to install any tool for your device directly from their github releases and keep them updated. you can consider it as a small package manager for github releases.
This can be any tool you want to install, which is pre-compiled for your device and present on github releases.
Also it's mainly for installing tools that are not directly available in the officially by package managers
apt, yum, pacman
etc.
# Install install-release
pip install -U install-release
# Example Installation a tool named `gron` directly from its github releases
# install-release get [GITHUB-URL]
โฏ install-release get https://github.com/tomnomnom/gron
Checking for gron is installed using installed-release:
โฏ which gron
/home/noobi/.release-bin/gron
โฏ gron --help
Transform JSON (from a file, URL, or stdin) into discrete assignments to make it greppable
... # more
Prerequisites
-
python3.8 or higher
-
Default releases Installation Path is:
~/.release-bin/
, This is the path where installed tools will get stored. -
In order to run installed tools, you need to add the following line your
~/.bashrc
or~/.zshrc
file:
export PATH=$HOME/.release-bin:$PATH
Install this package
pip install -U install-release
Example usage install-release
# Help page
โฏ install-release --help
Usage: install-release [OPTIONS] COMMAND [ARGS]...
Github Release Installer, based on your system
Commands:
get | Install github release, cli tool
ls | list all installed release, cli tools
rm | remove any installed release, cli tools
upgrade | Upgrade all installed release, cli tools
state | show currnet stored state
config | Set configs for tool
pull | Install tools from remote state
version | print version of install-release
For sub command help use: install-release <sub-command> --help
Example: install-release get --help
You can shorten the command by setting alias to your .bashrc
or .zshrc
alias ir="install-release"
after this you can you alias directly for easiness
Example: ir get --help
Install tool from github releases
โฏ install-release get "https://github.com/ahmetb/kubectx"
๐ Repo : ahmetb/kubectx
๐ Stars : 13295
โจ Language : Go
๐ฅ Title : Faster way to switch between clusters and namespaces in kubectl
๐ Install: kubectx
โโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโโโโ
โ Name โ Selected Item โ Version โ Size Mb โ Downloads โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ kubectx โ kubectx_v0.9.4_linux_x86_64.tar.gz โ v0.9.4 โ 1.0 โ 43811 โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโ
Install this tool (Y/n): y
INFO Downloaded: 'kubectx_v0.9.4_linux_x86_64.tar.gz' at /tmp/dn_kubectx_ph6i7dmk utils.py:159
INFO install /tmp/dn_kubectx_ph6i7dmk/kubectx /home/noobi/.release-bin/kubectx core.py:132
INFO Installed: kubectx
# checking if kubectx is installed
โฏ which kubectx
/home/noobi/.release-bin/kubectx
โฏ kubectx --version
0.9.4
List installed tools
โฏ install-release ls
Installed tools
โโโโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Name โ Version โ Url โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ terrascan โ v1.15.2 โ https://github.com/tenable/terrascan โ
โ gron โ v0.7.1 โ https://github.com/tomnomnom/gron โ
โ kubectx โ v0.9.4 โ https://github.com/ahmetb/kubectx โ
โโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Remove installed release
# Remove installed release
โฏ install-release rm gron
INFO Removed: gron
Update all previously installed tools to the latest version
โฏ install-release upgrade
Fetching: https://github.com/tenable/terrascan#terrascan
Fetching: https://github.com/ahmetb/kubectx#kubectx
Following tools will be upgraded:
terrascan
Upgrade these tools, (Y/n): y
Updating: terrascan, v1.15.0 => v1.15.2
INFO Downloaded: 'terrascan_1.15.2_Linux_x86_64.tar.gz' at /tmp/dn_terrascan_0as71a6v
INFO install /tmp/dn_terrascan_0as71a6v/terrascan ~/.release-bin/terrascan
INFO Installed: terrascan
Progress... โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 100% 0:00:00
Hold Update to specific installed tool.
In case you want to hold update to specific tool, you can use hold {tool-name}
command by which it will pause update for that tool.
Example: keep tool named k9s update on hold
โฏ install-release hold k9s
INFO Update on hold for, k9s to True
You can list tools on hold updates by ls --hold
command
โฏ install-release ls --hold
Installed tools kept on hold
โโโโโโโโณโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Name โ Version โ Url โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ k9s โ v0.26.7 โ https://github.com/derailed/k9s โ
โโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
In case you want to unhold update to specific tool, you can use hold --unset {tool-name}
command by which it will pause update for that tool.
โฏ install-release hold --unset k9s
INFO Update on hold for, k9s to False
Config tool installation path
โฏ install-release config --path ~/.local/bin
INFO updated path to: ~/.local/bin
INFO Done
Config github to token for higher rate limit
โฏ install-release config --token [your github token]
INFO: Update token
INFO: Done.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for install_release-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caff730a889f00c3495d4c6f64489c21cef31471256f2af9cb783ee5b985f63f |
|
MD5 | 7c89d43952e5f8638cc56788095864ca |
|
BLAKE2b-256 | 1490705a801a23286f6921b3c0e7112578dad722869699db0730971131ad4e9b |