From 0272c43751a49e998c76f7eb892ba79e7c31ba8c Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Mon, 7 Jan 2019 14:47:05 +0100 Subject: [PATCH] Move usage functions into bkctld-help script * Usage output is now auto-generated --- bkctld | 6 ++++-- lib/bkctld-check | 4 ++++ lib/bkctld-firewall | 8 +++++++- lib/bkctld-help | 21 +++++++++++++++++++++ lib/bkctld-inc | 4 ++++ lib/bkctld-init | 8 +++++++- lib/bkctld-ip | 8 +++++++- lib/bkctld-key | 8 +++++++- lib/bkctld-port | 8 +++++++- lib/bkctld-reload | 8 +++++++- lib/bkctld-remove | 8 +++++++- lib/bkctld-restart | 8 +++++++- lib/bkctld-rm | 4 ++++ lib/bkctld-start | 8 +++++++- lib/bkctld-stats | 4 ++++ lib/bkctld-status | 8 +++++++- lib/bkctld-stop | 8 +++++++- lib/bkctld-sync | 8 +++++++- lib/bkctld-update | 8 +++++++- lib/functions | 26 -------------------------- 20 files changed, 132 insertions(+), 41 deletions(-) create mode 100755 lib/bkctld-help diff --git a/bkctld b/bkctld index 98200ce..f8d30d1 100755 --- a/bkctld +++ b/bkctld @@ -21,10 +21,12 @@ subcommand="${1:-}" jail="${2:-}" option="${3:-}" -[ -x "${LIBDIR}/bkctld-${subcommand}" ] || usage +if [ ! -x "${LIBDIR}/bkctld-${subcommand}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi case "${subcommand}" in - "inc" | "rm" | "check" | "stats") + "inc" | "rm" | "check" | "stats" | "help") "${LIBDIR}/bkctld-${subcommand}" ;; "init") diff --git a/lib/bkctld-check b/lib/bkctld-check index 0e957b0..df3fd29 100755 --- a/lib/bkctld-check +++ b/lib/bkctld-check @@ -1,4 +1,8 @@ #!/bin/sh +# +# Run check on jails (NRPE output) +# Usage: check +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" diff --git a/lib/bkctld-firewall b/lib/bkctld-firewall index 264398f..d063fb4 100755 --- a/lib/bkctld-firewall +++ b/lib/bkctld-firewall @@ -1,9 +1,15 @@ #!/bin/sh +# +# Update firewall rules of or all +# Usage: firewall |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi if [ -n "${FIREWALL_RULES}" ]; then [ -f "${FIREWALL_RULES}" ] && sed -i "/#${jail}$/d" "${FIREWALL_RULES}" diff --git a/lib/bkctld-help b/lib/bkctld-help new file mode 100755 index 0000000..6fd76f1 --- /dev/null +++ b/lib/bkctld-help @@ -0,0 +1,21 @@ +#!/bin/sh +# +# Print this help +# Usage: help +# + +LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" + +cat < [options] +Subcommands: +EOF + +for subcommand in ${LIBDIR}/bkctld-*; do + name=$(basename "${subcommand}"|cut -d'-' -f2) + 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" diff --git a/lib/bkctld-inc b/lib/bkctld-inc index f55a28c..7a04d2b 100755 --- a/lib/bkctld-inc +++ b/lib/bkctld-inc @@ -1,4 +1,8 @@ #!/bin/sh +# +# Make incremental inc of all jails +# Usage: inc +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" diff --git a/lib/bkctld-init b/lib/bkctld-init index c816b0f..8010c6c 100755 --- a/lib/bkctld-init +++ b/lib/bkctld-init @@ -1,9 +1,15 @@ #!/bin/sh +# +# Init jail +# Usage: init +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" && error "${jail} : trying to create existant jail" sshd_config="${TPLDIR}/sshd_config" diff --git a/lib/bkctld-ip b/lib/bkctld-ip index 25b326c..f381c02 100755 --- a/lib/bkctld-ip +++ b/lib/bkctld-ip @@ -1,10 +1,16 @@ #!/bin/sh +# +# Set or get allowed(s) ip(s) of +# Usage: ip [|all] +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" ip="${2:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : inexistant jail'" if [ -z "${ip}" ]; then diff --git a/lib/bkctld-key b/lib/bkctld-key index 4f26cf7..67e6662 100755 --- a/lib/bkctld-key +++ b/lib/bkctld-key @@ -1,10 +1,16 @@ #!/bin/sh +# +# Set or get ssh pubic key of +# Usage: key [] +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" keyfile="${2:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : inexistant jail'" if [ -z "${keyfile}" ]; then diff --git a/lib/bkctld-port b/lib/bkctld-port index 6c8b0fb..ac28d09 100755 --- a/lib/bkctld-port +++ b/lib/bkctld-port @@ -1,10 +1,16 @@ #!/bin/sh +# +# Set or get ssh port of +# Usage: port [|auto] +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" port="${2:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : inexistant jail'" if [ -z "${port}" ]; then diff --git a/lib/bkctld-reload b/lib/bkctld-reload index 1e97039..70f1adf 100755 --- a/lib/bkctld-reload +++ b/lib/bkctld-reload @@ -1,9 +1,15 @@ #!/bin/sh +# +# Reload jail or all +# Usage: reload |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to reload inexistant jail" check_jail_on "${jail}" || exit 0 diff --git a/lib/bkctld-remove b/lib/bkctld-remove index c423a43..942dd82 100755 --- a/lib/bkctld-remove +++ b/lib/bkctld-remove @@ -1,9 +1,15 @@ #!/bin/sh +# +# Remove jail or all +# Usage: remove |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to remove inexistant jail" check_jail_on "${jail}" && . "${LIBDIR}/bkctld-stop" "${jail}" diff --git a/lib/bkctld-restart b/lib/bkctld-restart index 3cef9ca..21db5b0 100755 --- a/lib/bkctld-restart +++ b/lib/bkctld-restart @@ -1,11 +1,17 @@ #!/bin/sh +# +# Restart jail or all +# Usage: restart |all +# set -eu LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to restart inexistant jail" check_jail_on "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}" "${LIBDIR}/bkctld-start" "${jail}" diff --git a/lib/bkctld-rm b/lib/bkctld-rm index 30e80a8..a89c0c5 100755 --- a/lib/bkctld-rm +++ b/lib/bkctld-rm @@ -1,4 +1,8 @@ #!/bin/sh +# +# Remove old incremtal inc of all jails +# Usage: rm +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" diff --git a/lib/bkctld-start b/lib/bkctld-start index cf0daa1..4aa5a65 100755 --- a/lib/bkctld-start +++ b/lib/bkctld-start @@ -1,9 +1,15 @@ #!/bin/sh +# +# Start jail or all +# Usage: start |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to start inexistant jail" check_jail_on "${jail}" && exit 0 diff --git a/lib/bkctld-stats b/lib/bkctld-stats index 9e955ed..7077f8e 100755 --- a/lib/bkctld-stats +++ b/lib/bkctld-stats @@ -1,4 +1,8 @@ #!/bin/sh +# +# Make and display stats on jails (size, lastconn) +# Usage: stats +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" diff --git a/lib/bkctld-status b/lib/bkctld-status index 2d3e9ba..aaa2c7a 100755 --- a/lib/bkctld-status +++ b/lib/bkctld-status @@ -1,9 +1,15 @@ #!/bin/sh +# +# Print status of (default all jail) +# Usage: status [] +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : inexistant jail ! Use '$0 status' for list all" inc=$(get_inc "${jail}") diff --git a/lib/bkctld-stop b/lib/bkctld-stop index da2f93a..3ca4f02 100755 --- a/lib/bkctld-stop +++ b/lib/bkctld-stop @@ -1,9 +1,15 @@ #!/bin/sh +# +# Stop jail or all +# Usage: stop |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to stop inexistant jail" check_jail_on "${jail}" || exit 0 diff --git a/lib/bkctld-sync b/lib/bkctld-sync index 6081b7b..50db934 100755 --- a/lib/bkctld-sync +++ b/lib/bkctld-sync @@ -1,9 +1,15 @@ #!/bin/sh +# +# Sync jail or all to another node +# Usage: sync |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to sync inexistant jail" [ -n "${NODE}" ] || error "Sync need config of \$NODE in /etc/default/bkctld !" diff --git a/lib/bkctld-update b/lib/bkctld-update index 289c873..7c34038 100755 --- a/lib/bkctld-update +++ b/lib/bkctld-update @@ -1,9 +1,15 @@ #!/bin/sh +# +# Update jail or all +# Usage: update |all +# LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" -[ -n "${jail}" ] || usage +if [ ! -n "${jail}" ]; then + "${LIBDIR}/bkctld-help" && exit 1 +fi check_jail "${jail}" || error "${jail} : trying to update inexistant jail" check_jail_on "${jail}" && . "${LIBDIR}/bkctld-stop" "${jail}" diff --git a/lib/functions b/lib/functions index 9a66bc4..b1584d5 100755 --- a/lib/functions +++ b/lib/functions @@ -1,31 +1,5 @@ #!/bin/sh -usage() { - cat < [options] -Subcommands: - init Init jail - update |all Update jail or all - remove |all Remove jail or all - start |all Start jail or all - stop |all Stop jail or all - reload |all Reload jail or all - restart |all Restart jail or all - sync |all Sync jail or all to another node - firewall |all Update firewall rules of or all - status [] Print status of (default all jail) - key [] Set or get ssh pubic key of - port [|auto] Set or get ssh port of - ip [|all] Set or get allowed(s) ip(s) of - inc Make incremental inc of all jails - rm Remove old incremtal inc of all jails - check Run check on jails (NRPE output) - stats Make and display stats on jails (size, lastconn) - -EOF -exit 1 -} - check_jail() { jail="${1}" [ -d "${JAILDIR}/${jail}" ] && return 0