Simple package manager to easily install, update and manage any command-line(CLI) tool directly from github releases
Project description
๐ Install Release
Install Release is a CLI tool by name ir
to install any single-binary executable package for your device(Linux/MacOS/WSL) directly from their GitHub or GitLab releases and keep them updated. Consider it as a small package manager to install single binary tools from GitHub/GitLab releases.
This can be any tool you want to install, which is pre-compiled for your device and present on GitHub or GitLab 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 ๐
- 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/GitLab 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/GitLab tokens for higher rate limit ๐
Getting started โก
# Install ir
pip install -U install-release
Example Installation a tool named deno(A modern runtime for JavaScript and TypeScript) directly from its GitHub releases.
# ir get [GITHUB-URL or GITLAB-URL]
# Example install deno tool from github
โฏ ir get https://github.com/denoland/deno
# Or for GitLab repositories
# Example install glab tool from gitlab
โฏ ir get https://gitlab.com/gitlab-org/cli -n glab
Checking for deno is installed by install-release
:
โฏ which deno
~/bin/deno
โฏ deno --version
deno 1.46.3 (stable, release, x86_64-unknown-linux-gnu)
v8 12.9.202.5-rusty
typescript 5.5.2
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/GitLab 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/GitLab 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/GitLab tokens for higher rate limit ๐
For GitHub:
โฏ ir config --token [your github token]
INFO: Updated GitHub token
INFO: Done.
For GitLab:
โฏ ir config --gitlab-token [your gitlab token]
INFO: Updated GitLab 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.5.2.tar.gz
.
File metadata
- Download URL: install_release-0.5.2.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.11.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5f8d843740621f35cd7db5db91555f4230b5381f6ca755a7cae57564a552c94b
|
|
MD5 |
51ce3f355de8dbebb37ac31711ab8288
|
|
BLAKE2b-256 |
bda29f7b91fed079decb630da53209f99b78c06ed1dfccddcb1e50e2a3aaee06
|
File details
Details for the file install_release-0.5.2-py3-none-any.whl
.
File metadata
- Download URL: install_release-0.5.2-py3-none-any.whl
- Upload date:
- Size: 37.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.11.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
537433d80cbb82a18e616d454651924c38285f9fc65c3321dbf9d082dc7f28dd
|
|
MD5 |
d22ad494699c708e6492baec5d78788f
|
|
BLAKE2b-256 |
bfff05c89bbfb624e90ad2853b8789b5464b0a5d965a5e275535154d70e1f978
|