From 66d8df1f59c4a22fd39f5916f46846f2bbe87f83 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Thu, 29 Feb 2024 21:30:07 +0000 Subject: [PATCH] reorganized and beefed up the readme --- README.md | 113 ++++++++++++++++++++++++++++++++- scripts/--help | Bin 0 -> 36864 bytes apps => scripts/apps | 0 birthdate => scripts/birthdate | 0 cecho => scripts/cecho | 0 checkit => scripts/checkit | 0 dirsz => scripts/dirsz | 0 fif => scripts/fif | 0 forecast => scripts/forecast | 0 ifcheck => scripts/ifcheck | 0 memo => scripts/memo | 0 netcheck => scripts/netcheck | 0 oggrec => scripts/oggrec | 0 status => scripts/status | 0 vmemo => scripts/vmemo | 0 scripts/wx | 8 +++ yootoob => scripts/yootoob | 0 17 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 scripts/--help rename apps => scripts/apps (100%) rename birthdate => scripts/birthdate (100%) rename cecho => scripts/cecho (100%) rename checkit => scripts/checkit (100%) rename dirsz => scripts/dirsz (100%) rename fif => scripts/fif (100%) rename forecast => scripts/forecast (100%) rename ifcheck => scripts/ifcheck (100%) rename memo => scripts/memo (100%) rename netcheck => scripts/netcheck (100%) rename oggrec => scripts/oggrec (100%) rename status => scripts/status (100%) rename vmemo => scripts/vmemo (100%) create mode 100755 scripts/wx rename yootoob => scripts/yootoob (100%) diff --git a/README.md b/README.md index a9e4cff..b25092b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,114 @@ # cli-scripts -Useful CLI scripts that I think are worth sharing. \ No newline at end of file +Useful CLI scripts that I think are worth sharing. + +**NOTE: With all of these, you'll need to customize the environment for yourself. I have yet to make things like home directories and what-not generic variables** + +## Prerequisites + +The scripts in the scripts directory rely heavily the expectation that you +already have a number of applications installed on your system. If you're +on a Debian or Ubuntu-ish system, then installing them should be more or less +as simple as an `apt install {whatever}`. For the rest of you, you'll have to +make your own way. Sorry. + +Here is the prerequisite list broken down by script: + +### apps + +This is a little ncurses menu I built for myself. Dependencies will be +determined by how you decide to customize the menu for yourself (i.e. what +applications you want to put in the menu), but there is one common +dependency. + +* `dialog` - I think this comes automatically with Debian/Ubuntu + +### birthdate + +prints the initial installation date of your system + +* None + +### cecho + +provides colorized echo messages + +* The **bash** version of `printf` for best results + +### checkit + +performs a grammatical version of code linting, but on your text documents. + +* `vale` - https://vale.sh/ +* `go` - Their Dockerfile (for the docker implementation) calls for golang 1.21 + +### dirsz + +dumps a list of the directory sizes recursively from your CWD + +* None + +### fif + +A "find-in-files" utility for the console. + +* `fd-find` - a better substitute for the standard 'find' command + +### forecast + +Dumpe a three-day forecast to your console + +* `curl`, and a network connection (for access to wttr.in) + +### ifcheck + +shows the state of your ethernet/wifi interface + +* `ip` - I can't remember if this was something I had to install after the fact. + +### memo + +* None - However, you'll need to modify the script to specify your own editor, and you'll have to create a "memos" directory in your Documents folder. + +### netcheck + +Tells you if the internet is accessible from your shell. + +* None + +### oggrec + +Starts a recording from the console, using your default mic + +* `alsa-utils` - provides `arecord` which captures the raw audio input +* `vorbis-tools` - provides `oggenc` which encodes it to ogg and stores it to the specified file + +### status + +Combines the ifcheck, netcheck, wx, and a few other commands into a full screen status display + +* `ifcheck` - see above +* `netcheck` - see above +* `cecho` - see above +* `wx` - seee below + +### vmemo + +records a short, low-resolution (small size) 15 second audio memo from your default mic + +* `arecord` +* `mp3 codecs` + +### wx + +displays the current weather conditions for your area. You'll need to customize the script. + +* `ansiweather` - available in Debian and Ubuntu repositories. + +### yootoob + +A utility for searching and watching youtube videos without a browser + +* `ytfzf` (which I believe also has a dependency on `yt-dlp`) + + diff --git a/scripts/--help b/scripts/--help new file mode 100644 index 0000000000000000000000000000000000000000..42ca8985e402c6218c6b6de90b2c77f329a47ad8 GIT binary patch literal 36864 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 e+NzK499JCHdr6wup0BqEUk@#yJ%L literal 0 HcmV?d00001 diff --git a/apps b/scripts/apps similarity index 100% rename from apps rename to scripts/apps diff --git a/birthdate b/scripts/birthdate similarity index 100% rename from birthdate rename to scripts/birthdate diff --git a/cecho b/scripts/cecho similarity index 100% rename from cecho rename to scripts/cecho diff --git a/checkit b/scripts/checkit similarity index 100% rename from checkit rename to scripts/checkit diff --git a/dirsz b/scripts/dirsz similarity index 100% rename from dirsz rename to scripts/dirsz diff --git a/fif b/scripts/fif similarity index 100% rename from fif rename to scripts/fif diff --git a/forecast b/scripts/forecast similarity index 100% rename from forecast rename to scripts/forecast diff --git a/ifcheck b/scripts/ifcheck similarity index 100% rename from ifcheck rename to scripts/ifcheck diff --git a/memo b/scripts/memo similarity index 100% rename from memo rename to scripts/memo diff --git a/netcheck b/scripts/netcheck similarity index 100% rename from netcheck rename to scripts/netcheck diff --git a/oggrec b/scripts/oggrec similarity index 100% rename from oggrec rename to scripts/oggrec diff --git a/status b/scripts/status similarity index 100% rename from status rename to scripts/status diff --git a/vmemo b/scripts/vmemo similarity index 100% rename from vmemo rename to scripts/vmemo diff --git a/scripts/wx b/scripts/wx new file mode 100755 index 0000000..f902b8f --- /dev/null +++ b/scripts/wx @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +if ! [[ -n $1 ]]; then + loc="Cowley,UK" +else + loc=$1 +fi + +ansiweather -l $loc -u imperial -s true -i false diff --git a/yootoob b/scripts/yootoob similarity index 100% rename from yootoob rename to scripts/yootoob