diff --git a/CHANGELOG b/CHANGELOG index e9d2596..8743609 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - nagios-nrpe: add a check dhcp_pool - collectd: add dhcp_pool.pl script - base: add a "next_part" before executing evobackup in daily.local file +- base: add update-evobackup-canary script ### Changed diff --git a/roles/base/files/update-evobackup-canary b/roles/base/files/update-evobackup-canary new file mode 100644 index 0000000..20fc1a5 --- /dev/null +++ b/roles/base/files/update-evobackup-canary @@ -0,0 +1,129 @@ +#!/bin/sh + +PROGNAME="update-evobackup-canary" +REPOSITORY="https://gitea.evolix.org/evolix/evobackup" + +VERSION="22.05" +readonly VERSION + +# base functions + +show_version() { + cat <, + Jérémy Lecour , + and others. + +${REPOSITORY} + +${PROGNAME} comes with ABSOLUTELY NO WARRANTY. This is free software, +and you are welcome to redistribute it under certain conditions. +See the GNU General Public License v3.0 for details. +END +} +show_help() { + cat <> "${canary_file}" +} + +# 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 + ;; + + -w|--who) + # with value separated by space + if [ -n "$2" ]; then + who=$2 + shift + else + printf 'ERROR: "-w|--who" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --who=?*) + # with value speparated by = + who=${1#*=} + ;; + --who=) + # without value + printf 'ERROR: "--who" requires a non-empty option argument.\n' >&2 + exit 1 + ;; + + -f|--file) + # with value separated by space + if [ -n "$2" ]; then + canary_file=$2 + shift + else + printf 'ERROR: "-f|--file" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --file=?*) + # with value speparated by = + canary_file=${1#*=} + ;; + --file=) + # without value + printf 'ERROR: "--file" requires a non-empty option argument.\n' >&2 + exit 1 + ;; + + --) + # End of all options. + shift + break + ;; + -?*) + # ignore unknown options + printf 'WARN: Unknown option : %s\n' "$1" >&2 + exit 1 + ;; + *) + # Default case: If no more options then break out of the loop. + break + ;; + esac + + shift +done + +export LC_ALL=C + +set -u + +main diff --git a/roles/base/tasks/utils.yml b/roles/base/tasks/utils.yml index 4a5a6fd..eb0c6e7 100644 --- a/roles/base/tasks/utils.yml +++ b/roles/base/tasks/utils.yml @@ -7,3 +7,16 @@ owner: root group: wheel mode: "0750" + tags: + - utils + +- name: update-evobackup-canary script is present + copy: + src: "update-evobackup-canary" + dest: /usr/local/bin/update-evobackup-canary + force: true + owner: root + group: wheel + mode: "0755" + tags: + - utils