diff --git a/README.md b/README.md index bfb22fa..a69eef4 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,12 @@ refer to the [compatibility table](#compatibility) for specifics. ## shell functions +### [archive](/sh/archive#L7) + +create an archive file in one of a few formats. + +borrowed from [prezto.](https://github.com/sorin-ionescu/prezto) + ### [argc](/sh/argc#L7) validate the number of arguments in a function. @@ -278,7 +284,7 @@ Filesystem Used Max Left Misc find files in system directories that aren't associated with any pacman packages. -### [document](/sh/document#L144) +### [document](/sh/document#L150) generate a markdown file out of docstrings in shell scripts. @@ -336,10 +342,14 @@ this script utilizes the CSS provided at ### [has](/sh/has#L7) +[`have`,](#have) silently. + +### [have](/sh/have#L7) + print the result of `which` if the program is found, else simply return 1. ``` -export SOLVER="$(has kissat || has picosat || has cadical || has minisat)" +export SOLVER="$(have kissat || have picosat || have cadical || have minisat)" ``` ### [hex](/sh/hex#L10) @@ -382,6 +392,12 @@ $ isup fdhafdslkjgfjs.com && echo yay || echo nay nay ``` +### [lsarchive](/sh/lsarchive#L7) + +list the contents of an archive file in one of many formats. + +borrowed from [prezto.](https://github.com/sorin-ionescu/prezto) + ### [maybesudo_ (sh/maybesudo)](/sh/maybesudo#L7) mimic certain features of `sudo` for systems without it installed. @@ -691,15 +707,15 @@ invoke mpv with some extra flags suited for streamed sources. play some media in mpv with a bunch of unnecessary filters. -### [mpv_stream (sh/streamcrap)](/sh/streamcrap#L89) +### [mpv_stream (sh/streamcrap)](/sh/streamcrap#L97) watch a stream in mpv with a bunch of unnecessary filters. -### [twitch (sh/streamcrap)](/sh/streamcrap#L98) +### [twitch (sh/streamcrap)](/sh/streamcrap#L106) watch a twitch stream in mpv with a bunch of unnecessary filters. -### [yt (sh/streamcrap)](/sh/streamcrap#L105) +### [yt (sh/streamcrap)](/sh/streamcrap#L113) watch a youtube video in mpv with a bunch of unnecessary filters. this can be given a full URL or just a video ID. @@ -709,7 +725,7 @@ there exist several variants for more specific use cases. **NOTE:** there also exists a yt(1) program provided by the *python3-yt* package that i don't use. -### [ytll (sh/streamcrap)](/sh/streamcrap#L127) +### [ytll (sh/streamcrap)](/sh/streamcrap#L135) watch a stream from youtube in mpv, etcetera etcetera. this is the low latency version that does not support seeking. @@ -777,6 +793,12 @@ $ seq 1 100 | tr '\n' ' ' | trunc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31… ``` +### [unarchive](/sh/unarchive#L7) + +extract the contents of an archive file in one of many formats. + +borrowed from [prezto.](https://github.com/sorin-ionescu/prezto) + ### [wat](/sh/wat#L9) wat — a better and recursive which/whence. for zsh only. @@ -865,215 +887,215 @@ return 0, ignoring arguments. **TODO:** respect initctl like in `.zshrc`. -### [ADDPATH (-shrc)](/home/-shrc#L30) +### [ADDPATH (-shrc)](/home/-shrc#L20) append a directory to `$PATH` if it isn't already present. -### [fils (-shrc)](/home/-shrc#L88) +### [fils (-shrc)](/home/-shrc#L78) (GNU du) display human-friendly filesizes for the files in a directory. -### [lsa (-shrc)](/home/-shrc#L89) +### [lsa (-shrc)](/home/-shrc#L79) (GNU ls) list files with directories and dotfiles ordered first. -### [perlu (-shrc)](/home/-shrc#L90) +### [perlu (-shrc)](/home/-shrc#L80) invoke perl expecting files with UTF-8 encoding. -### [rgn (-shrc)](/home/-shrc#L91) +### [rgn (-shrc)](/home/-shrc#L81) invoke ripgrep without respecting `.gitignore` files. -### [cms (-shrc)](/home/-shrc#L92) +### [cms (-shrc)](/home/-shrc#L82) invoke cryptominisat5 with less noise. -### [curls (-shrc)](/home/-shrc#L93) +### [curls (-shrc)](/home/-shrc#L83) invoke curl with less noise. -### [get (-shrc)](/home/-shrc#L97) +### [get (-shrc)](/home/-shrc#L87) retrieve the most recent files from the default branch of a git repository, and not much else. -### [gs (-shrc)](/home/-shrc#L98) +### [gs (-shrc)](/home/-shrc#L88) invoke git's status subcommand. **TODO:** consider renaming because gs(1) already exists. -### [gd (-shrc)](/home/-shrc#L100) +### [gd (-shrc)](/home/-shrc#L90) invoke git's diff subcommand with fewer lines of context. -### [gds (-shrc)](/home/-shrc#L101) +### [gds (-shrc)](/home/-shrc#L91) display difference stats from git. -### [gl (-shrc)](/home/-shrc#L102) +### [gl (-shrc)](/home/-shrc#L92) invoke git's log subcommand with a single line per commit. **TODO:** consider renaming because [gl(1)](https://github.com/gitless-vcs/gitless) already exists. -### [glo (-shrc)](/home/-shrc#L104) +### [glo (-shrc)](/home/-shrc#L94) navigate git's commit tree succinctly. -### [g1 (-shrc)](/home/-shrc#L105) +### [g1 (-shrc)](/home/-shrc#L95) display the most recent git commit. -### [gr (-shrc)](/home/-shrc#L106) +### [gr (-shrc)](/home/-shrc#L96) display remote git repositories verbosely. -### [gb (-shrc)](/home/-shrc#L107) +### [gb (-shrc)](/home/-shrc#L97) display the current git branch. **NOTE:** there also exists a gb(1) program provided by the *gb* package that i don't use. -### [gdp (-shrc)](/home/-shrc#L110) +### [gdp (-shrc)](/home/-shrc#L100) invoke `gd` to diff a commit from its parent. the commit defaults to "HEAD". -### [revend (-shrc)](/home/-shrc#L120) +### [revend (-shrc)](/home/-shrc#L110) reverse the 4-byte endianness of a single file. *this is an in-place operation!* -### [clone (-shrc)](/home/-shrc#L121) +### [clone (-shrc)](/home/-shrc#L111) invoke rsync suitably for creating virtually indistinguishable copies of files. -### [aligntabs (-shrc)](/home/-shrc#L122) +### [aligntabs (-shrc)](/home/-shrc#L112) align tab-delimited fields in stdin. -### [crawla (-shrc)](/home/-shrc#L123) +### [crawla (-shrc)](/home/-shrc#L113) play Dungeon Crawl: Stone Soup through ssh on the akrasiac server. -### [crawlz (-shrc)](/home/-shrc#L124) +### [crawlz (-shrc)](/home/-shrc#L114) play Dungeon Crawl: Stone Soup through ssh on the develz server. -### [eahead (-shrc)](/home/-shrc#L126) +### [eahead (-shrc)](/home/-shrc#L116) deprecated name for [`ea head`.](#ea) -### [eaget (-shrc)](/home/-shrc#L127) +### [eaget (-shrc)](/home/-shrc#L117) deprecated name for [`ea get`.](#ea) -### [eaput (-shrc)](/home/-shrc#L128) +### [eaput (-shrc)](/home/-shrc#L118) deprecated name for [`ea put`.](#ea) -### [eamove (-shrc)](/home/-shrc#L129) +### [eamove (-shrc)](/home/-shrc#L119) deprecated name for [`ea move`.](#ea) -### [eacopy (-shrc)](/home/-shrc#L130) +### [eacopy (-shrc)](/home/-shrc#L120) deprecated name for [`ea copy`.](#ea) -### [eadelete (-shrc)](/home/-shrc#L131) +### [eadelete (-shrc)](/home/-shrc#L121) deprecated name for [`ea delete`.](#ea) -### [eamv (-shrc)](/home/-shrc#L132) +### [eamv (-shrc)](/home/-shrc#L122) invoke [`ea move`.](#ea) -### [eacp (-shrc)](/home/-shrc#L133) +### [eacp (-shrc)](/home/-shrc#L123) invoke [`ea copy`.](#ea) -### [earm (-shrc)](/home/-shrc#L134) +### [earm (-shrc)](/home/-shrc#L124) invoke [`ea delete`.](#ea) -### [ll (-shrc)](/home/-shrc#L136) +### [ll (-shrc)](/home/-shrc#L126) list files verbosely, fancily, ordered, but not recursively. -### [diff (-shrc)](/home/-shrc#L145) +### [diff (-shrc)](/home/-shrc#L135) use git's diff subcommand for general diffing. -### [gc (-shrc)](/home/-shrc#L146) +### [gc (-shrc)](/home/-shrc#L136) columnize text by using git's column subcommand. **TODO:** consider renaming because gc(1) already exists. -### [counts (-shrc)](/home/-shrc#L148) +### [counts (-shrc)](/home/-shrc#L138) count files in the current directory, including files found recursively. -### [exts (-shrc)](/home/-shrc#L149) +### [exts (-shrc)](/home/-shrc#L139) count and sort file extensions in the current directory, including files found recursively. -### [nocom (-shrc)](/home/-shrc#L150) +### [nocom (-shrc)](/home/-shrc#L140) strip single-line C-like and shell-like comments. -### [jrep (-shrc)](/home/-shrc#L151) +### [jrep (-shrc)](/home/-shrc#L141) extract strings comprised of basic ASCII or Japanese codepoints. -### [bomb (-shrc)](/home/-shrc#L152) +### [bomb (-shrc)](/home/-shrc#L142) add a Byte-Order Mark to a file. -### [cleanse (-shrc)](/home/-shrc#L153) +### [cleanse (-shrc)](/home/-shrc#L143) strip unprintable and non-ASCII characters. -### [unwrap (-shrc)](/home/-shrc#L154) +### [unwrap (-shrc)](/home/-shrc#L144) join paragraphs into one line each. -### [double (-shrc)](/home/-shrc#L155) +### [double (-shrc)](/home/-shrc#L145) print every line twice.
print every line twice. **NOTE:** there also exists a double(1) program provided by the *plotutils* package that i don't use. -### [join2 (-shrc)](/home/-shrc#L158) +### [join2 (-shrc)](/home/-shrc#L148) join every other line. -### [katagana (-shrc)](/home/-shrc#L159) +### [katagana (-shrc)](/home/-shrc#L149) convert katakana codepoints to their equivalent hiragana. this is occasionally useful when translating [debug text from ancient games.](https://tcrf.net/) -### [picky (-shrc)](/home/-shrc#L161) +### [picky (-shrc)](/home/-shrc#L151) list pacman packages that were manually installed and are not in some common package groups. this list can be used to assist later reinstalls. -### [unused (-shrc)](/home/-shrc#L164) +### [unused (-shrc)](/home/-shrc#L154) list pacman packages that weren't installed explicitly and don't satisfy any dependencies. this list can be used to free up some disk space. -### [makepkgf (-shrc)](/home/-shrc#L167) +### [makepkgf (-shrc)](/home/-shrc#L157) make the freakin' package! -### [rakef (-shrc)](/home/-shrc#L168) +### [rakef (-shrc)](/home/-shrc#L158) make the freakin' gem! -### [pl (-shrc)](/home/-shrc#L170) +### [pl (-shrc)](/home/-shrc#L160) print each argument on its own line. @@ -1081,8 +1103,6 @@ print each argument on its own line. | script | preference | zsh | bash | dash | ash | | --------------------------------------------- | ---------- | ---- | ---- | ---- | ---- | -| [_lsarchive](#_lsarchive) | ❔ | ❔ | ❔ | ❔ | ❔ | -| [_unarchive](#_unarchive) | ❔ | ❔ | ❔ | ❔ | ❔ | | [archive](#archive) | zsh | ✔️ | ⭕ | ⭕ | ⭕ | | [argc](#argc) | *sh* | ✔️ | ✔️ | ✔️ | ✔️ | | [arith](#arith) | zsh | ✔️ | ✔️ | ✔️ | ✔️ | @@ -1112,6 +1132,7 @@ print each argument on its own line. | [ghmd](#ghmd) | *sh* | ✔️ | ✔️ | ✔️ | ✔️ | | [glug](#glug) | dash | ✔️ | ✔️ | ✔️ | ✔️ | | [has](#has) | *sh* | ✔️ | ✔️ | ✔️ | ✔️ | +| [have](#have) | *sh* | ✔️ | ✔️ | ✔️ | ✔️ | | [hex](#hex) | zsh | ✔️ | ✔️ | ✔️ | ✔️ | | [ify](#ify) | *sh* | ✔️ | ✔️ | ✔️ | ✔️ | | [is_empty](#is_empty) | bash | ✔️ | ✔️ | ⭕ | ⭕ |