ideation
This commit is contained in:
		
							
								
								
									
										67
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								README.md
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										137
									
								
								catalog.yaml
									
									
									
									
									
										Normal 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/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user