From 2607a2c1023b994655dfa85b7cd101b124ed7822 Mon Sep 17 00:00:00 2001 From: setop Date: Wed, 1 Feb 2023 16:16:35 +0100 Subject: [PATCH] ideation --- README.md | 67 +++++++++++++++++++++++++ catalog.yaml | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 README.md create mode 100644 catalog.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..f31d611 --- /dev/null +++ b/README.md @@ -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. + + + + diff --git a/catalog.yaml b/catalog.yaml new file mode 100644 index 0000000..e1ddbd3 --- /dev/null +++ b/catalog.yaml @@ -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/ +