2013-04-13 17:45:21 +00:00
|
|
|
# Shebang. Executing bash via /usr/bin/env makes scripts more portable.
|
|
|
|
snippet #!
|
2015-03-14 20:02:10 +00:00
|
|
|
#!/usr/bin/env sh
|
2017-05-26 09:30:32 +00:00
|
|
|
|
|
|
|
snippet s#!
|
|
|
|
#!/usr/bin/env sh
|
2020-01-29 02:07:36 +00:00
|
|
|
set -eu
|
2017-05-26 09:30:32 +00:00
|
|
|
|
|
|
|
snippet safe
|
2020-01-29 02:07:36 +00:00
|
|
|
set -eu
|
2017-05-26 09:30:32 +00:00
|
|
|
|
2015-03-14 20:02:10 +00:00
|
|
|
snippet bash
|
2013-04-13 17:45:21 +00:00
|
|
|
#!/usr/bin/env bash
|
2013-07-17 23:06:05 +00:00
|
|
|
|
2016-04-03 20:59:57 +00:00
|
|
|
snippet sbash
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
IFS=$'\n\t'
|
|
|
|
|
2013-04-13 17:45:21 +00:00
|
|
|
snippet if
|
|
|
|
if [[ ${1:condition} ]]; then
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
fi
|
|
|
|
snippet elif
|
|
|
|
elif [[ ${1:condition} ]]; then
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
snippet for
|
|
|
|
for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
done
|
|
|
|
snippet fori
|
|
|
|
for ${1:needle} in ${2:haystack} ; do
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
done
|
|
|
|
snippet wh
|
|
|
|
while [[ ${1:condition} ]]; do
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
done
|
|
|
|
snippet until
|
|
|
|
until [[ ${1:condition} ]]; do
|
2017-02-11 13:01:38 +00:00
|
|
|
${0:${VISUAL}}
|
2013-04-13 17:45:21 +00:00
|
|
|
done
|
|
|
|
snippet case
|
|
|
|
case ${1:word} in
|
|
|
|
${2:pattern})
|
2013-11-16 19:45:48 +00:00
|
|
|
${0};;
|
2013-04-13 17:45:21 +00:00
|
|
|
esac
|
2013-07-17 23:06:05 +00:00
|
|
|
snippet go
|
|
|
|
while getopts '${1:o}' ${2:opts}
|
|
|
|
do
|
2013-04-13 17:45:21 +00:00
|
|
|
case $$2 in
|
|
|
|
${3:o0})
|
2013-11-16 19:45:48 +00:00
|
|
|
${0:#staments};;
|
2013-04-13 17:45:21 +00:00
|
|
|
esac
|
|
|
|
done
|
|
|
|
# Set SCRIPT_DIR variable to directory script is located.
|
|
|
|
snippet sdir
|
2022-08-08 13:45:56 +00:00
|
|
|
SCRIPT_DIR="\$( cd "\$( dirname "\${BASH_SOURCE[0]}" )" && pwd )"
|
2013-04-13 17:45:21 +00:00
|
|
|
# getopt
|
|
|
|
snippet getopt
|
|
|
|
__ScriptVersion="${1:version}"
|
|
|
|
|
|
|
|
#=== FUNCTION ================================================================
|
|
|
|
# NAME: usage
|
|
|
|
# DESCRIPTION: Display usage information.
|
|
|
|
#===============================================================================
|
|
|
|
function usage ()
|
|
|
|
{
|
2022-08-08 13:45:56 +00:00
|
|
|
echo "Usage : \$${0:0} [options] [--]
|
2013-04-13 17:45:21 +00:00
|
|
|
|
2015-03-14 20:02:10 +00:00
|
|
|
Options:
|
|
|
|
-h|help Display this message
|
|
|
|
-v|version Display script version"
|
2013-04-13 17:45:21 +00:00
|
|
|
|
|
|
|
} # ---------- end of function usage ----------
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
# Handle command line arguments
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
while getopts ":hv" opt
|
|
|
|
do
|
2022-08-08 13:45:56 +00:00
|
|
|
case \$opt in
|
2013-04-13 17:45:21 +00:00
|
|
|
|
|
|
|
h|help ) usage; exit 0 ;;
|
|
|
|
|
2022-08-08 13:45:56 +00:00
|
|
|
v|version ) echo "\$${0:0} -- Version \$__ScriptVersion"; exit 0 ;;
|
2013-04-13 17:45:21 +00:00
|
|
|
|
2022-08-08 13:45:56 +00:00
|
|
|
* ) echo -e "\\n Option does not exist : \$OPTARG\\n"
|
2013-04-13 17:45:21 +00:00
|
|
|
usage; exit 1 ;;
|
|
|
|
|
|
|
|
esac # --- end of case ---
|
|
|
|
done
|
2022-08-08 13:45:56 +00:00
|
|
|
shift \$(($OPTIND-1))
|
2013-04-13 17:45:21 +00:00
|
|
|
snippet root
|
2014-07-02 11:18:18 +00:00
|
|
|
if [ \$(id -u) -ne 0 ]; then exec sudo \$0; fi
|
2015-03-14 20:02:10 +00:00
|
|
|
|
|
|
|
snippet fun-sh
|
2013-11-16 19:45:48 +00:00
|
|
|
${1:function_name}() {
|
|
|
|
${0:#function_body}
|
|
|
|
}
|
2015-03-14 20:02:10 +00:00
|
|
|
|
|
|
|
snippet fun
|
2013-11-16 19:45:48 +00:00
|
|
|
function ${1:function_name}() {
|
|
|
|
${0:#function_body}
|
|
|
|
}
|