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