scripts

My personal collection of scripts
git clone git://src.gearsix.net/scripts
Log | Files | Refs | Atom | README | LICENSE

commit d35e7723d9c37079d1755eddd4007b3b0baeb5b8
parent eb3e76ad3bb53cf1c24edc9d757806a7654b001a
Author: gearsix <gearsix@tuta.io>
Date:   Mon, 26 Jul 2021 16:54:04 +0100

finished adding -h/--help prints

Diffstat:
Msrc/compress-pdf.sh | 1+
Msrc/cpc.sh | 1+
Msrc/flac2mp3.sh | 7+++++++
Msrc/gfind.sh | 15++++++++++++++-
Msrc/git-clone-bulk.sh | 8++++++++
Msrc/git-pull-all.sh | 8++++++++
Msrc/gobuild.sh | 9+++++++++
Msrc/mkdcp.sh | 7+++++++
Msrc/mkdmv.sh | 7+++++++
Msrc/mkdnvim.sh | 9++++++++-
Msrc/mkdtouch.sh | 7+++++++
Msrc/preview-md.sh | 13++++++++++++-
Msrc/randstr.sh | 7+++++++
Msrc/shh.sh | 7+++++++
Msrc/strindex.sh | 22++++++++++++++++------
15 files changed, 119 insertions(+), 9 deletions(-)

diff --git a/src/compress-pdf.sh b/src/compress-pdf.sh @@ -10,6 +10,7 @@ if [ -z $1 ] || [ -z $2 ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo "for SETTINGS options, see https://web.mit.edu/ghostscript/www/Ps2pdf.htm#Options" echo "INPUT should provide the filepath of a PDF to compress" echo "OUTPUT should provided the filepath of the compressed PDF (default: ./compressed.pdf)" + exit fi in="$1" diff --git a/src/cpc.sh b/src/cpc.sh @@ -9,6 +9,7 @@ if [ -z $1 ] || [ -z $2 ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo "" echo "copy the contents of the file INPUT to file OUTPUT" echo "WARNING: this will overwrite existing contents in file OUTPUT" + exit fi touch $2 diff --git a/src/flac2mp3.sh b/src/flac2mp3.sh @@ -4,6 +4,13 @@ # e.g.$ flac2mp3 ./album # DEPENDENCIES: ffmpeg +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: flac2mp3 DIRECTORY" + echo "" + echo "use ffmpeg to convert a directory of .flac files to .mp3 files" + exit +fi + for file in $1/*.flac; do ffmpeg -i "$file" -qscale:a 0 "${file[@]/%flac/mp3}" done diff --git a/src/gfind.sh b/src/gfind.sh @@ -4,5 +4,18 @@ # dependencies: grep # e.g.$ gfind dogs/ "shades" -grep -rnw $1 -e "$2" #recursive, print line #, match whole word +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: gfind [OPTIONS] DIRECTORY EXPRESSION" + echo "" + echo "call grep EXPRESSION on all files in DIRECTORY" + echo "" + echo "OPTIONS" + echo " -r recursively search DIRECTORY" + exit +fi + +ARGS="-nw" # print line #, match whole word +if [ "$1" == "-r" ]; then ARGS="-rnw"; fi # recursive + +grep $ARGS $1 -e "$2" diff --git a/src/git-clone-bulk.sh b/src/git-clone-bulk.sh @@ -3,4 +3,12 @@ # ARGUMENTS: git-clone-bulk repo1 repo2 repo3 ... # DEPENDENCIES: git +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: git-clone-bulk REPO..." + echo "" + echo "'git clone' multiple repos in one call. REPO should be a list of git repositories to clone" + echo "bash expansion is useful here: 'git-clone-bulk github.com/user/{repo1,repo2}" + exit +fi + for repo in $@; do git clone $repo; done diff --git a/src/git-pull-all.sh b/src/git-pull-all.sh @@ -2,6 +2,14 @@ # src: https://gist.github.com/grimzy/a1d3aae40412634df29cf86bb74a6f72 # description: pull all remote branches to the local repo + +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: git-pull-all" + echo "" + echo "pull all remote branches of repo in callers working directory to local" + exit +fi + git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done git fetch --all git pull --all diff --git a/src/gobuild.sh b/src/gobuild.sh @@ -2,6 +2,15 @@ # DESCRIPTION: build a go pkg for all supported platforms # DEPENDENCIES: go +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: gobuild SRC..." + echo "" + echo "build a go binary for every platform" + echo "this will set the GOARCH and GOOS variables and run 'go build'" + echo "for when you want to build a binary to distribute for as many platforms as possible" + exit +fi + name=$1 src=$2 arch=(amd64 386 arm) diff --git a/src/mkdcp.sh b/src/mkdcp.sh @@ -3,6 +3,13 @@ # description: make a directory and copy files into it # e.g.$ mkdcp ~/new-dir /tmp/file* +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: mkdcp DIRECTORY FILEPATH..." + echo "" + echo "mkdir DIRECTORY and cp all listed FILEPATH... entries into it" + exit +fi + #mkdir $1 dir=$1; mkdir -p $dir diff --git a/src/mkdmv.sh b/src/mkdmv.sh @@ -3,6 +3,13 @@ # description: mkdir $1 && mv ($2...$n) 1to it # e.g.$ mkdmv ~/new-dir ~/var/tmp/file* +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: mkdmv DIRECTORY FILEPATH..." + echo "" + echo "mkdir DIRECTORY and mv all listed FILEPATH... files into it" + exit +fi + #mkdir $1 dir="$1"; mkdir -p "$dir" diff --git a/src/mkdnvim.sh b/src/mkdnvim.sh @@ -3,8 +3,15 @@ # description: makes directory $1 and opens file $2 using nvim # e.g.$ mkdnvim ~/new file #creates ~/new/file and nvim into it +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: mkdedit DIRECTORY FILENAME" + echo "" + echo "mkdir DIRECTORY and open \$DIRECTORY/\$FILENAME in \$EDITOR" + exit +fi + mkdir $1; cd $1; touch $2; -nvim $2; +$EDITOR $2; diff --git a/src/mkdtouch.sh b/src/mkdtouch.sh @@ -2,6 +2,13 @@ # description: mkdir $1; touch ${2, ...} # arguments: $1 = dir path to make; $2, ... = filenames to touch +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: mkdtouch DIRECTORY FILEPATH..." + echo "" + echo "mkdir DIRECTORY and touch listed FILEPATH... into it" + exit +fi + mkdir $1 shift touch $@ diff --git a/src/preview-md.sh b/src/preview-md.sh @@ -4,6 +4,17 @@ # dependencies: cmark # e.g.$ preview-md README.md --open +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: preview-md FILE [OPTIONS]" + echo "" + echo "convert a Markdown file to HTML using cmark" + echo "the generated file will have the same filename as FILE, where the extension is replaced with .html" + echo "" + echo "OPTIONS" + echo " -o, --open open the output file (using xdg-open) when finished" + exit +fi + mdconv="cmark" out=$(echo "$1" | sed "s/md/html/") @@ -11,7 +22,7 @@ if [ -e "$out" ]; then rm -i $out; fi $mdconv "$1" > "$out" if [ $? -eq 0 ]; then echo "succesfully converted to $out" - if [ ! -z $2 ] && [ "$2" = "--open" ] || [ "$2" = "-o" ]; then + if [ ! -z $2 ] && [ "$2" == "--open" ] || [ "$2" == "-o" ]; then xdg-open "$out" &>/dev/null fi else diff --git a/src/randstr.sh b/src/randstr.sh @@ -3,6 +3,13 @@ # description: generate a random string of size $1 (default: 10) # e.g.$ randstr 10 +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: randstr [SIZE]" + echo "" + echo "print a random string of SIZE length (default: 10)" + exit +fi + len=10 if [ $1 ]; then len=$1; fi diff --git a/src/shh.sh b/src/shh.sh @@ -3,6 +3,13 @@ # description: run a terminal command ($@) and send stdout to /dev/null # e.g.$ shh chromium & +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: quiet ARGS" + echo "" + echo "run all commands in ARGS but send stdout to /dev/null, for when a tool is too noisy" + exit +fi + for bin in $@; do $bin &>/dev/null done; diff --git a/src/strindex.sh b/src/strindex.sh @@ -5,13 +5,23 @@ # # NOTES: index returned ranges from 0 - (string length) -#swaps argument (strindex "cat on mat" "mat") -if [[ -z $3 && $3 == "-r" ]]; then +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: strindex [OPTIONS] SUBSTRING STRING" + echo "" + echo "print the starting index of SUBSTRING in STRING" + echo "-1 will be printed if SUBSTRING could not be found" + echo "" + echo "OPTIONS (must be provided before SUBSTRING STRING)" + echo " -r reverse provided SUBSTRING and STRING order" + exit +fi + +if [[ "$1" == "-r" ]]; then # swap arguments (e.g. strindex "cat on mat" "mat") + shift x="${1%%$2*}" - [[ "$x" = "$1" ]] && echo "ERROR! strindex(): Could not find $2 in $1" || echo "${#x}" -#standard usage (see e.g.$) -else + [[ "$x" = "$1" ]] && echo "-1" || echo "${#x}" +else #standard usage (see e.g.$) x="${2%%$1*}" - [[ "$x" = "$2" ]] && echo "ERROR! strindex(): could not find $1 in $2" || echo "${#x}" + [[ "$x" = "$2" ]] && echo "-1" || echo "${#x}" fi