ideation
This commit is contained in:
commit
2607a2c102
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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/
|
||||||
|
|
Loading…
Reference in New Issue