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.
INFO: It's mainly for installing tools that are not directly available officially by package managers like
apt, yum, pacmanetc.
# 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/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:
~/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
~/.bashrcor~/.zshrcfile:
export PATH=$HOME/bin:$PATH
Install this package
pip install -U install-release
Update this package
For seeing verison:
install-release me --version
For updating:
install-release me --upgrade
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
hold | Keep updates a tool on hold.
me | Update install-release tool.
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 completion for shell
# install-release --install-completion [SHELL: bash|zsh|fish|powershell]
# Example for zsh:
install-release --install-completion zsh
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/bin/kubectx core.py:132
INFO Installed: kubectx
# checking if kubectx is installed
โฏ which kubectx
/home/noobi/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 ~/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 updates for pre release versions
This is useful when you want to install pre-release versions of tools like beta or alpha releases. by default it is set to False in which case it will only check for latest release.
โฏ install-release config --pre-release
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file install_release-0.3.2.tar.gz.
File metadata
- Download URL: install_release-0.3.2.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68f8217fc93ed72e5aaa1f24203e1a43ee3d951c6025053ae0a9386f9d24c6dd
|
|
| MD5 |
d11a1ef4645b6c4b6dde4ec0d35852a5
|
|
| BLAKE2b-256 |
74cbd4727664de10788af04f50a08d8814bccfe7b2f103f22ab7f86ba1f55014
|
File details
Details for the file install_release-0.3.2-py3-none-any.whl.
File metadata
- Download URL: install_release-0.3.2-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b19d3a042b1ecd6c13986a6bac17219e326c7b1806f07b960f171c22047876c2
|
|
| MD5 |
1e6524efdb2eada8cdb4f355fa30ae96
|
|
| BLAKE2b-256 |
93778d0674d2a1c12739661707cdfa9a9604aee048b2d0b507b28dedf3f214f7
|