Simple package manager to easily install, update and manage any command-line(CLI) tool directly from github releases
Project description
Install Release ๐
ir
is a CLI tool to install any tool for your device directly from their GitHub releases and keep them updated. Consider it as a small package manager to install tools from 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, pacman, brew
etc.
Table of Contents
- Install Release ๐
- Table of Contents
- Getting started
- Prerequisites
- Install
install-release
package - Updating
install-release
- Example usage
ir --help
- Install completion for cli
- Install tool from GitHub releases
- List installed tools
- Remove installed release
- Update all previously installed tools to the latest version
- Pull state templates for installing tools.
- Hold Update to specific installed tool.
- Config tool installation path
- Config updates for pre-release versions
- Configure GitHub token for higher rate limit
Getting started
# Install ir
pip install -U ir
# Example Installation a tool named `gron` directly from its GitHub releases
# ir get [GITHUB-URL]
โฏ ir get https://github.com/tomnomnom/gron
Checking for gron is installed by install-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 to your
~/.bashrc
or~/.zshrc
file:
export PATH=$HOME/bin:$PATH
Install install-release
package
pip install -U install-release
Updating install-release
For seeing version:
ir me --version
For updating:
ir me --upgrade
Example usage ir --help
# Help page
โฏ ir --help
Usage: ir [OPTIONS] COMMAND [ARGS]...
GitHub Release Installer, based on your system
Commands:
get | Install GitHub release, cli tool
ls | list all installed releases, cli tools
rm | remove any installed release, cli tools
upgrade | Upgrade all installed releases, cli tools
state | show currently stored state
config | Set configs for tool
pull | Install tools from a remote state
hold | Keep updates a tool on hold.
me | Update ir tool.
For sub-command help use: ir <sub-command> --help
Example: ir get --help
Install completion for cli
# ir --install-completion [SHELL: bash|zsh|fish|powershell]
# Example for zsh:
ir --install-completion zsh
Install tool from GitHub releases
โฏ ir 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
โฏ ir 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
โฏ ir rm gron
INFO Removed: gron
Update all previously installed tools to the latest version
โฏ ir 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
Pull state templates for installing tools.
You can push your state to somewhere like GitHub and use it for any other device, to make a sync for tools installed via ir
โฏ ir pull --url https://raw.githubusercontent.com/Rishang/dotFiles/main/templates/install-release/state.json
Hold Update to specific installed tool.
In case you want to hold an update to the specific tool, you can use hold {tool-name}
command which will pause update for that tool.
Example: keep tool named k9s update on hold
โฏ ir hold k9s
INFO Update on hold for, k9s to True
You can list tools on hold updates by ls --hold
command
โฏ ir 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 the specific tool, you can use hold --unset {tool-name}
command by which it will pause update for that tool.
โฏ ir hold --unset k9s
INFO Update on hold for, k9s to False
Config tool installation path
โฏ ir 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.
โฏ ir config --pre-release
Configure GitHub token for higher rate limit
โฏ ir 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
File details
Details for the file install_release-0.4.4.tar.gz
.
File metadata
- Download URL: install_release-0.4.4.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.8.18 Linux/6.5.0-1022-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1be16e18d3a123568a0619956cca2c17a10f2ee3c2ccc8e14c8192f55c285e4d |
|
MD5 | 84597d1e7854b2f7bb6219e76acf3ac7 |
|
BLAKE2b-256 | 958fba7bb4b79a0d54b4b3d37197d730094e4bcb4ebe0280bf0aa1a4a0a485c9 |
File details
Details for the file install_release-0.4.4-py3-none-any.whl
.
File metadata
- Download URL: install_release-0.4.4-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.8.18 Linux/6.5.0-1022-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bf61f3be0d6c49de4788236a9fa470376db849dd241989eb113d358395096f8 |
|
MD5 | bf5b1be2aef8f2c9f1e44234b3cd0870 |
|
BLAKE2b-256 | 9b6c834f5bd216bf789e1149059c52060a3964f21527f290c39883b6bf952453 |