setop e5a8651e57 | ||
---|---|---|
README.md | ||
catalog.yaml |
README.md
title | date | tags |
---|---|---|
manage command line tools in user profile | 2023-02-01 | linux, devtools, cli |
Installs standalone command line utilities in your user profile
motivations
You have a bunch of useful tools for day to day activity in the terminal, as a dev or ops guy. Tools like jq, fzf, exa, etc.
But you never know if there are up to date, where they come from, what do they to exactly, do you still need them.
Few of them are part of you OS package manager. Most of the time old version. And you may not want to insall them system wide actually.
Cliget lists, installs and updates standalone command line utilities in your user profile.
Inspired by envinstall (private), webinstall, asdf.
what
- search catalog
- identify latest version
- download last release
- from GH release
- install for user
- in various shapes:
- from tar.gz
- exe
- wheel (python)
- overriding info from the caralog (repo, version)
- in various shapes:
- list installed
- identify installed version
- can install itself
- have nice defaults (gh release, targz, x86_64, linux, etc.)
- small codebase, preferably one file
won't
- manage dependencies like apt or pip does
- install system wide
- install outside of dedicated folder
- install from source, be could (rust/cargo, python/pip, go/go)
- uninstall ; user can remove by her/him-self.
- overlap with package managers (apt, yum, etc.) or environment managers (nix, asdf, etc.)
FAQ
What does it do, again ?
CliGet automates the followingi process:
- go to my useful tool website
- navigate to release section
- check if it has been updated
- if so, download, extract, install
- repeat for all the useful small toos I use
- repeat periodically
CliGet has nice defaults, favors convention over configuration, and does its best to "guess" how to get current version numner, get last version number, download last release and install it properly.
Tools developper / mantainers are not supposed to know CliGet exists. It adapts to the way they deliver thier software. Of course if they use GitHub release and TGZ, it's easier for Cliget to manage :')
so I have to do this process for CliGet ?
Only the first time. After being installed, CliGet is managed by CliGet.
I already use asdf, why would I need cliget ?
asdf is a wonderful tool when it comes to do software development in various programing language while mixing versions from one project to an other.
But this power comes with some constraints : a plugin has to be developped in order to integrate a new tool to asdf ; And versions of every tool that will be used for a project has to be declared in a config file.
CliGet does not handle multiversions, tools are deployed for your whole profile.
In short, if you want to manage development environment, use asfd. If you want to install small tools, use CliGet. They do not conflict, they are complement each other.
I already use the package manager of my OS to install tools, why would I need cliget ?
Package managers handle dependencies and install software system wide, for all users. Not all sofwares are packaged for all OS distributions because this is hard work for mantainers. So you end up with some softwares not available or not up to date.
CliGet only install standalone programs, in the user profile (.local/bin
). It does its best to find the last version and the best way to install the software. The is no need to package for CliGet.
I already use Flatpack, AppImage, Snap to install tools in my profile, why would I need CliGet ?
These are package managers for the user profile. They come with heavy runtime. And, as classic package manager, not all tools are packaged nor up to date as it requires work from mantainers.
CliGet does not sandbox, nor manage dependencies but does not any special packaging.
I don't want to install python on my machine
CliGet is written in Python but packaged as a standalone program with no dependencies except lic and zlib.
I don't trust you. What prevent you from dumping me a malware instead of a genuine software ?
- source code is available and very straightforward. you can audit the code, build from source or even write your own version
- the tool, will by default, prompt you with clear information of what will be done before install
- catalog is only one file, readable, with clear information on where the software is coming from and how it will be installed
- also keep in mind you also have to trust the to be installed software dev team. We are different teams.
I want this for macos or mswindows
Currently only Linux is supported. It shoud work on all unix like OS. For others, contributions are wellcome as long as they do not compicate the tool too much.