152 lines
2.8 KiB
Plaintext
152 lines
2.8 KiB
Plaintext
snippet boil "boilerplace"
|
|
#!/usr/bin/env bash
|
|
set -uf -o pipefail
|
|
IFS=$'\n\t'
|
|
|
|
$0
|
|
|
|
snippet boil2 "Boilerplate" b
|
|
#!/usr/bin/env bash
|
|
set -euf -o pipefail
|
|
IFS=$'\n\t'
|
|
|
|
#/ Usage:
|
|
#/ Description:
|
|
#/ Examples:
|
|
#/ Options:
|
|
#/ --help: Display this help message
|
|
usage() {
|
|
grep '^#/' "\$0" | cut -c4-
|
|
exit 0
|
|
}
|
|
expr "$*" : ".*--help" > /dev/null && usage
|
|
|
|
echoerr() { printf "%s\n" "$*" >&2; }
|
|
info() { echoerr "[INFO] $*"; }
|
|
warning() { echoerr "[WARNING] $*"; }
|
|
error() { echoerr "[ERROR] $*"; }
|
|
fatal() {
|
|
echoerr "[FATAL] $*"
|
|
exit 1
|
|
}
|
|
|
|
cleanup() {
|
|
info "... cleaned up"
|
|
}
|
|
|
|
if [[ "\${BASH_SOURCE[0]}" = "\$0" ]]; then
|
|
trap cleanup EXIT
|
|
$0
|
|
fi
|
|
|
|
snippet scriptdir "get dir of current script"
|
|
DIR="$( cd "$(dirname "\${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
|
|
snippet arg_default "argument with default value"
|
|
ARG=\$\{1:-default\}
|
|
|
|
snippet arg_switch "getopts switch"
|
|
while getopts "hv" arg; do
|
|
case "\$arg" in
|
|
h) # help
|
|
show_help
|
|
exit 0
|
|
;;
|
|
v) # version
|
|
printf "%s\\n" "\$version"
|
|
exit 0
|
|
;;
|
|
*)
|
|
exit 1
|
|
esac
|
|
done
|
|
|
|
snippet if_empty "if empty"
|
|
if [ -z "$VAR" ]; then
|
|
true
|
|
fi
|
|
|
|
snippet if_not_empty "if not empty"
|
|
if [ -n "$VAR" ]; then
|
|
true
|
|
fi
|
|
|
|
snippet if_file "if file exists"
|
|
if [[ -f "$PATH" ]]; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_dir "if dir exists"
|
|
if [[ -d "$PATH" ]]; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_grep "if file contains"
|
|
if grep -q "$1" "$2"; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_argc "if argument count"
|
|
if [ "$#" -eq $1 ]; then
|
|
$0
|
|
fi
|
|
echo $#
|
|
|
|
snippet if_not_argc "if not argument count"
|
|
if [ "$#" -ne $1 ]; then
|
|
$0
|
|
fi
|
|
echo $#
|
|
|
|
snippet if_numeric "check if numeric"
|
|
if printf "%s" "$1" | grep -Eq '^[+-]?[0-9]+$'; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_tmux "if in tmux"
|
|
if printf "%s" "$TERM" | grep -Fq screen && test "$TMUX" ; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_root "if not running as root"
|
|
if [[ $EUID -eq 0 ]]; then
|
|
$0
|
|
fi
|
|
|
|
snippet if_not_root "if not running as root"
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
snippet for_line_in_var "for line in variable"
|
|
while read -r LINE; do
|
|
printf 'line: %s\n' "$LINE"
|
|
done <<< "$VAR"
|
|
|
|
snippet for_file_rg "for file in rg match"
|
|
FILES=$(rg -e "^<<<<<<")
|
|
while IFS=: read -r FILE _; do
|
|
printf 'file: %s\n' "$FILE"
|
|
done <<< "$FILES"
|
|
|
|
snippet confirm "prompt user to confirm action"
|
|
read -p "$1" -n 1 -r
|
|
echo
|
|
if [[ \$REPLY =~ ^[Yy]$ ]]
|
|
then
|
|
$0
|
|
fi
|
|
|
|
snippet colors "use colors"
|
|
BLACK = $(shell tput -Txterm setaf 0)
|
|
RED = $(shell tput -Txterm setaf 1)
|
|
GREEN = $(shell tput -Txterm setaf 2)
|
|
YELLOW = $(shell tput -Txterm setaf 3)
|
|
BLUE = $(shell tput -Txterm setaf 4)
|
|
MAGENTA = $(shell tput -Txterm setaf 5)
|
|
CYAN = $(shell tput -Txterm setaf 6)
|
|
WHITE = $(shell tput -Txterm setaf 7)
|
|
RESET = $(shell tput -Txterm sgr0)
|
|
|