diff options
author | Cullum Smith <cullum@sacredheartsc.com> | 2024-07-11 10:55:45 -0400 |
---|---|---|
committer | Cullum Smith <cullum@sacredheartsc.com> | 2024-07-11 10:55:45 -0400 |
commit | 85007db580ccf662a45cf2aaeb83518ad2ddb85a (patch) | |
tree | d692c5bdbaf33c5b9791d538982b17ab4dd808ee /boxconf | |
parent | de8305223b6079d14ac854ee067ffd069cb38ec7 (diff) | |
download | infrastructure-85007db580ccf662a45cf2aaeb83518ad2ddb85a.tar.gz |
initial boxconf scaffolding
Diffstat (limited to 'boxconf')
-rwxr-xr-x | boxconf | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +#!/bin/sh +# +# Shell-based configuration management framework for unix-like systems. + +set -eu + +PROGNAME=boxconf +USAGE="${PROGNAME} [-d] [-e VAR=VALUE]... [-o HOSTNAME] TARGET" +BOXCONF_ROOT=$(dirname "$(readlink -f "$0")") + +usage(){ + [ $# -gt 0 ] && printf '%s\n' "$1" 2>&1 + printf 'usage: %s\n' "$USAGE" 2>&1 + exit 2 +} + +while getopts :hde:o:X _bc_opt; do + case $_bc_opt in + h) usage ;; + d) set -x ;; + e) eval "$OPTARG" ;; + o) BOXCONF_HOSTNAME=$OPTARG ;; + X) _bc_run=1 ;; + :) usage "missing option value: -${OPTARG}" ;; + ?) usage "unknown option: -${OPTARG}" ;; + esac +done + +shift $((OPTIND - 1)) +[ $# -eq 1 ] || usage + +for _bc_lib in "${BOXCONF_ROOT}/lib"/*; do + . "$_bc_lib" +done + +if [ -n "${_bc_run:-}" ]; then + _boxconf_run +else + _boxconf_deploy "$1" "${BOXCONF_HOSTNAME:-$1}" "$@" +fi |