From 3816d94e9551ff3de7038f655220a6769ea54cfe Mon Sep 17 00:00:00 2001 From: Vezpi Date: Fri, 28 Feb 2020 21:25:36 +0100 Subject: [PATCH] added skel.sh --- skel.sh | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 skel.sh diff --git a/skel.sh b/skel.sh new file mode 100644 index 0000000..a737a5e --- /dev/null +++ b/skel.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +#---------------------------------------------------------------------------------------------------- +#~ Name : Script name +#~ Description : Skel script +#~ Author : Etienne Girault +#~ +#~ Usage : [-h] [-D] [-V] +#~ +#~ Options : -h, --help ; Print help +#~ Options : -V, --version ; Print version +#~ Options : -D, --debug ; Debug + +#---------------------------------------------------------------------------------------------------- +# Variables +#---------------------------------------------------------------------------------------------------- +script_name="$(grep '^#~ Name' "$0" | sed 's/^.*: //')" +script_version="$(grep '^#~ v' "$0" | tail -1 | sed -e 's/^#~ //' -e 's/ *\-.*$//')" + +#---------------------------------------------------------------------------------------------------- +# Functions +#---------------------------------------------------------------------------------------------------- +print_script_name_version() { echo "$script_name $script_version" && sed -n '/^#~ Version/,$p' "$0" | grep '^#~' | sed 's/^#~ //'; } +print_script_description() { grep '^#~ Description' "$0" | sed 's/^.*: //'; } +print_script_usage() { grep '^#~ Usage' "$0" | sed -e 's/^.*: //' -e '1 s/^/Usage: '"${0##*/}"' /' -e '2,$ s/^/'"$(printf '%*s' "$(echo "Usage: ${0##*/}" | wc -c)")"'/'; } +print_script_options() { echo "Options" && grep '^#~ Options' "$0" | sed -e 's/^.*://' -e 's/^ --/ --/' | column -ts \;; } +print_script_help() { echo "$script_name $script_version" && print_script_description && print_script_usage && print_script_options; } + +# Signals +trap 'exit 1' INT TERM + +#---------------------------------------------------------------------------------------------------- +# Options +#---------------------------------------------------------------------------------------------------- +while getopts ":-:hVD" OPTION; do + case $OPTION in + h) print_script_help; exit;; + V) print_script_name_version; exit;; + D) set -x;; + :) ;; + -) case $OPTARG in + help) print_script_help; exit;; + version) print_script_name_version; exit;; + debug) set -x;; + esac ;; + *) ;; + esac +done +shift $((OPTIND-1)) + +#---------------------------------------------------------------------------------------------------- +# Start +#---------------------------------------------------------------------------------------------------- + + +#---------------------------------------------------------------------------------------------------- +# End +#---------------------------------------------------------------------------------------------------- + +#~ Version changelog +#~ v0.1 - Script creation + + +