This commit is contained in:
setop 2023-02-01 16:16:35 +01:00
commit 2607a2c102
2 changed files with 204 additions and 0 deletions

67
README.md Normal file
View File

@ -0,0 +1,67 @@
---
title: manage command line tools in user profile
date: 2023-02-01
tags: 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](gh:webinstall/webi-installers), [asdf](gh:asdf-community/.github).
# what
- [ ] search catalog
- [ ] identify latest version
- [ ] download last release
- [ ] from GH release
- [ ] install for user
- [ ] from tar.gz
- [ ] 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
#### 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.

137
catalog.yaml Normal file
View File

@ -0,0 +1,137 @@
- bat:
desc: a better less
- exa:
desc: enhanced ls
- fio:
desc: io benchmark
- fzf:
desc: fuzzy search
- glances:
desc: a better top/htop
- gloss:
desc: markdown viewer
- gotty:
desc: Share your terminal as a web application
- gron:
desc: flatter json to make it greppable
repo: tomnomnom/gron
- hx:
name: helix
desc: text editor, inspired by vim
- jless:
desc: json document browser
- jp:
desc: ploting
- jq:
desc: json query
- outrun:
desc: Delegate execution of a local command to a remote machine.
- mintotp:
desc: generate TOTP from the terminal
- pet:
desc: manager snippets
- pylufic:
inst: direct
desc: Let's upload that file CLI
- qr:
desc: generate qr code
- rg:
name: ripgrep
desc: improved grep
repo: BurntSushi/ripgrep
- slugify:
desc: generate sluged version of input
repo: un33k/python-slugify
- slurp:
desc: put whole input in memory before processing
shell: cat > /dev/shm/slurp_$$ && cat /dev/shm/slurp_$$ ; rm /dev/shm/slurp_$$
- sqlite-utils:
desc: manipulate sqlite db (ETL)
website: https://sqlite-utils.datasette.io/
pipx:
- stork:
desc: full text search, index in terminal, query in terminal or embed in web page
repo: jameslittle230/stork
- tab:
desc: A modern text/number processing language for the shell.
website: http://tab-lang.xyz/
repo: https://bitbucket.org/tkatchev/tab
- teip:
desc: Highly efficient "Masking tape" for Shell
repo: greymd/teip
- tldr:
desc: Collaborative cheatsheets for console commands ; must choose a client
website: https://tldr.sh/
- tqdm:
desc: a better pv
pip:
- ttyd:
desc: share terminal over the web
repo: tsl0922/ttyd
- up:
desc: interactively edit pipe
name: Ultimate Plumber
repo: akavel/up
- vd:
name: VisiData
desc: interactive multitool for tabular data
pip: visidata,lxml,odfpy,openpyxl,pyarrow,urllib3,requests,pyinstaller
- watchgod:
desc: Watch a directory and execute a python function on changes.
pip:
- websocat:
desc: client for web sockets, like netcat/curl/socat but for ws://
repo: vi/websocat
- ww:
name: webwormhole
desc: creates ephemeral pipes between computers
website: https://webwormhole.io/
- xsv:
desc: a fast CSV command line toolkit
repo: BurntSushi/xsv
- zee:
desc: modern text editor for the terminal
cargo:
- zq:
desc: process data with Zed queries
repo: brimdata/zed
- zsync:
desc: file transfer program ; based on rsync ; downloads only new parts of the file
website: http://zsync.moria.org.uk/