Add "version" and extract "help" options
This commit is contained in:
parent
6fe81c7077
commit
c1fbe6394f
|
@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* bkctld: add a [-V|--version] option to display release number
|
||||||
|
* bkctld: add a [-h|--help|-?] option to display help message
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
33
bkctld
33
bkctld
|
@ -34,9 +34,30 @@ fi
|
||||||
# shellcheck source=lib/includes
|
# shellcheck source=lib/includes
|
||||||
. "${LIBDIR}/includes"
|
. "${LIBDIR}/includes"
|
||||||
|
|
||||||
|
# Parse options
|
||||||
|
# based on https://gist.github.com/deshion/10d3cb5f88a21671e17a
|
||||||
|
while :; do
|
||||||
|
case $1 in
|
||||||
|
-h|-\?|--help)
|
||||||
|
show_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-V|--version)
|
||||||
|
show_version
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Default case: If no more options then break out of the loop.
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
subcommand="${1:-}"
|
subcommand="${1:-}"
|
||||||
case "${subcommand}" in
|
case "${subcommand}" in
|
||||||
"inc" | "rm" | "check-jails" | "check-setup" | "stats" | "help" | "list")
|
"inc" | "rm" | "check-jails" | "check-setup" | "stats" | "list")
|
||||||
"${LIBDIR}/bkctld-${subcommand}"
|
"${LIBDIR}/bkctld-${subcommand}"
|
||||||
;;
|
;;
|
||||||
"check")
|
"check")
|
||||||
|
@ -50,14 +71,14 @@ case "${subcommand}" in
|
||||||
elif [ "${option}" = "last" ]; then
|
elif [ "${option}" = "last" ]; then
|
||||||
"${LIBDIR}/bkctld-check-last-incs"
|
"${LIBDIR}/bkctld-check-last-incs"
|
||||||
else
|
else
|
||||||
"${LIBDIR}/bkctld-help"
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"init" | "is-on")
|
"init" | "is-on")
|
||||||
jail_name="${2:-}"
|
jail_name="${2:-}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help"
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
|
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
|
||||||
|
@ -67,7 +88,7 @@ case "${subcommand}" in
|
||||||
jail_name="${2:-}"
|
jail_name="${2:-}"
|
||||||
option="${3:-}"
|
option="${3:-}"
|
||||||
if [ "${jail_name}" = "all" ] || [ -z "${jail_name}" ]; then
|
if [ "${jail_name}" = "all" ] || [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help"
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}" "${option}"
|
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}" "${option}"
|
||||||
|
@ -80,7 +101,7 @@ case "${subcommand}" in
|
||||||
"${LIBDIR}/bkctld-${subcommand}" "${jail}"
|
"${LIBDIR}/bkctld-${subcommand}" "${jail}"
|
||||||
done
|
done
|
||||||
elif [ -z "${jail_name}" ]; then
|
elif [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help"
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
|
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
|
||||||
|
@ -97,7 +118,7 @@ case "${subcommand}" in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
"${LIBDIR}/bkctld-help"
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Run check on all expected incs of all jails
|
||||||
|
# Usage: check-incs all
|
||||||
|
#
|
||||||
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Run check on jails (NRPE output)
|
# Run check on jails (NRPE output)
|
||||||
# Usage: check
|
# Usage: check-jails
|
||||||
#
|
#
|
||||||
|
|
||||||
# shellcheck source=./includes
|
# shellcheck source=./includes
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Run check on the last inc of all jails
|
||||||
|
# Usage: check-incs last
|
||||||
|
#
|
||||||
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Run check on jails (NRPE output)
|
# Run check on jails (NRPE output)
|
||||||
# Usage: check
|
# Usage: check-setup
|
||||||
#
|
#
|
||||||
|
|
||||||
# shellcheck source=./includes
|
# shellcheck source=./includes
|
||||||
|
|
|
@ -10,7 +10,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
|
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Print this help
|
|
||||||
# Usage: help
|
|
||||||
#
|
|
||||||
|
|
||||||
# shellcheck source=./includes
|
|
||||||
LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
Usage: bkctld <subcommand> [options]
|
|
||||||
Subcommands:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for subcommand in ${LIBDIR}/bkctld-*; do
|
|
||||||
name=$(basename "${subcommand}"|sed 's/^bkctld-//')
|
|
||||||
desc=$(grep -E "^#" "${subcommand}"|sed -n '3p'|sed "s/^# //")
|
|
||||||
usage=$(grep -E "^# Usage: ${name}" "${subcommand}"|sed "s/^# Usage: ${name}//")
|
|
||||||
printf " %- 10s %- 30s %- 40s\n" "${name}" "${usage}" "${desc}"
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "\n"
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ jail_name="${1:?}"
|
||||||
ip="${2:-}"
|
ip="${2:-}"
|
||||||
|
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
|
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ jail_name="${1:?}"
|
||||||
keyfile="${2:-}"
|
keyfile="${2:-}"
|
||||||
|
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ jail_name="${1:?}"
|
||||||
port="${2:-}"
|
port="${2:-}"
|
||||||
|
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
incs_path=$(incs_path "${jail_name}")
|
incs_path=$(incs_path "${jail_name}")
|
||||||
|
|
|
@ -11,7 +11,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
[ -d "${JAILDIR}/${jail_name}" ] || error "${jail_name} : jail is missing.\nUse '$0 status [all]' to get the status of all jails."
|
[ -d "${JAILDIR}/${jail_name}" ] || error "${jail_name} : jail is missing.\nUse '$0 status [all]' to get the status of all jails."
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ -z "${jail_name}" ]; then
|
if [ -z "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
jail_config_dir=$(jail_config_dir "${jail_name}")
|
jail_config_dir=$(jail_config_dir "${jail_name}")
|
||||||
|
|
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Update jail <jailname> or all
|
# Upgrade chroot components for jail <jailname> or all
|
||||||
# Usage: update <jailname>|all
|
# Usage: upgrade-config <jailname>|all
|
||||||
#
|
#
|
||||||
|
|
||||||
# shellcheck source=./includes
|
# shellcheck source=./includes
|
||||||
|
@ -9,7 +9,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/includes"
|
||||||
|
|
||||||
jail_name="${1:?}"
|
jail_name="${1:?}"
|
||||||
if [ ! -n "${jail_name}" ]; then
|
if [ ! -n "${jail_name}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
show_help && exit 1
|
||||||
fi
|
fi
|
||||||
jail_path=$(jail_path "${jail_name}")
|
jail_path=$(jail_path "${jail_name}")
|
||||||
|
|
||||||
|
|
37
lib/includes
37
lib/includes
|
@ -4,6 +4,10 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
[ -f /etc/default/bkctld ] && . /etc/default/bkctld
|
[ -f /etc/default/bkctld ] && . /etc/default/bkctld
|
||||||
|
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
VERSION="2.5.1"
|
||||||
|
|
||||||
LIBDIR=${LIBDIR:-/usr/lib/bkctld}
|
LIBDIR=${LIBDIR:-/usr/lib/bkctld}
|
||||||
CONFDIR="${CONFDIR:-/etc/evobackup}"
|
CONFDIR="${CONFDIR:-/etc/evobackup}"
|
||||||
BACKUP_DISK="${BACKUP_DISK:-}"
|
BACKUP_DISK="${BACKUP_DISK:-}"
|
||||||
|
@ -24,6 +28,39 @@ CRITICAL="${CRITICAL:-48}"
|
||||||
WARNING="${WARNING:-24}"
|
WARNING="${WARNING:-24}"
|
||||||
DUC=$(command -v duc-nox || command -v duc)
|
DUC=$(command -v duc-nox || command -v duc)
|
||||||
|
|
||||||
|
show_version() {
|
||||||
|
cat <<END
|
||||||
|
bkctld version ${VERSION}
|
||||||
|
|
||||||
|
Copyright 2004-2020 Evolix <info@evolix.fr>,
|
||||||
|
Victor Laborie <vlaborie@evolix.fr>,
|
||||||
|
Jérémy Lecour <jlecour@evolix.fr>
|
||||||
|
and others.
|
||||||
|
|
||||||
|
bkctld comes with ABSOLUTELY NO WARRANTY. This is free software,
|
||||||
|
and you are welcome to redistribute it under certain conditions.
|
||||||
|
See the GNU Affero General Public License v3.0 for details.
|
||||||
|
END
|
||||||
|
}
|
||||||
|
show_help() {
|
||||||
|
cat <<EOF
|
||||||
|
Usage: bkctld [options] <subcommand> [arguments]
|
||||||
|
Options
|
||||||
|
-h|--help|-? Display help
|
||||||
|
-V|--version Display version, authors and license
|
||||||
|
Subcommands:
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for subcommand in ${LIBDIR}/bkctld-*; do
|
||||||
|
name=$(basename "${subcommand}"|sed 's/^bkctld-//')
|
||||||
|
desc=$(grep -E "^#" "${subcommand}"|sed -n '3p'|sed "s/^# //")
|
||||||
|
usage=$(grep -E "^# Usage: ${name}" "${subcommand}"|sed "s/^# Usage: ${name}//")
|
||||||
|
printf " %- 15s %- 30s %- 40s\n" "${name}" "${usage}" "${desc}"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
}
|
||||||
|
|
||||||
log_date() {
|
log_date() {
|
||||||
echo "[$(date +"%Y-%m-%d %H:%M:%S")]"
|
echo "[$(date +"%Y-%m-%d %H:%M:%S")]"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue