From ad62d1da67831c6de287835a1188cead7c3f4ff1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sun, 17 Apr 2022 22:26:33 +0200 Subject: Add a Makefile for easy installation --- Makefile | 28 ++++++++++++++++++++++++++++ bin/bashtard | 14 ++++++-------- etc/defaults | 4 ---- etc/os.d/freebsd | 1 - lib/main.bash | 4 ++-- lib/subcommands/sync.bash | 2 +- lib/subcommands/sysinfo.bash | 3 ++- lib/util.bash | 4 ++-- share/defaults | 4 ++++ share/os.d/freebsd | 1 + 10 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 Makefile delete mode 100644 etc/defaults delete mode 100644 etc/os.d/freebsd create mode 100644 share/defaults create mode 100644 share/os.d/freebsd diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ef22cd4 --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +#!/usr/bin/env make + +DESTDIR=/usr + +install: bin lib share + +uninstall: + rm -fv -- "$(DESTDIR)/bin/bashtard" + rm -rfv -- "$(DESTDIR)/lib/bashtard" + rm -rfv -- "$(DESTDIR)/share/bashtard" + +bin: + mkdir -pv -- "$(DESTDIR)/bin" + sed \ + -e 's@BASHTARD_LIBDIR=.*@BASHTARD_LIBDIR="$(DESTDIR)/lib/bashtard"@' \ + -e 's@BASHTARD_SHAREDIR=.*@BASHTARD_SHAREDIR="$(DESTDIR)/share/bashtard"@' \ + bin/bashtard > "$(DESTDIR)/bin/bashtard" + chmod +x -- "$(DESTDIR)/bin/bashtard" + +lib: + mkdir -pv -- "$(DESTDIR)/lib/bashtard" + cp -rv -- lib/* "$(DESTDIR)/lib/bashtard" + +share: + mkdir -pv -- "$(DESTDIR)/share/bashtard" + cp -rv -- share/* "$(DESTDIR)/share/bashtard" + +.PHONY: install uninstall bin lib share diff --git a/bin/bashtard b/bin/bashtard index 70e2a97..fb49c3f 100755 --- a/bin/bashtard +++ b/bin/bashtard @@ -1,12 +1,10 @@ #!/bin/sh -BASHTARD_NAME="$(basename "$0")" -BASHTARD_BASEDIR="$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)" -BASHTARD_ETCDIR="/etc/$BASHTARD_NAME" - -export BASHTARD_BASEDIR -export BASHTARD_ETCDIR -export BASHTARD_NAME +export BASHTARD_BIN="$0" +export BASHTARD_NAME="$(basename "$0")" +export BASHTARD_ETCDIR="/etc/$BASHTARD_NAME" +export BASHTARD_LIBDIR="$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)/lib" +export BASHTARD_SHAREDIR="$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)/share" main() { if ! command -v bash > /dev/null @@ -15,7 +13,7 @@ main() { exit 1 fi - exec bash "$BASHTARD_BASEDIR/lib/main.bash" "$@" + exec bash "$BASHTARD_LIBDIR/main.bash" "$@" } main "$@" diff --git a/etc/defaults b/etc/defaults deleted file mode 100644 index d3d220c..0000000 --- a/etc/defaults +++ /dev/null @@ -1,4 +0,0 @@ -app.ssh=ssh - -fs.bindir=/usr/bin -fs.etcdir=/etc diff --git a/etc/os.d/freebsd b/etc/os.d/freebsd deleted file mode 100644 index 5e6732b..0000000 --- a/etc/os.d/freebsd +++ /dev/null @@ -1 +0,0 @@ -fs.etcdir=/usr/local/etc diff --git a/lib/main.bash b/lib/main.bash index 063b05f..851da1d 100644 --- a/lib/main.bash +++ b/lib/main.bash @@ -7,7 +7,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/util.bash" source "$(dirname "${BASH_SOURCE[0]}")/logging.bash" main() { - debug "$BASHTARD_NAME/main" "Running from $BASHTARD_BASEDIR" + debug "$BASHTARD_NAME/main" "Running from $BASHTARD_LIBDIR" debug "$BASHTARD_NAME/main" "Configuration dir is at $BASHTARD_ETCDIR" debug "$BASHTARD_NAME/main" "> $0 $*" @@ -17,7 +17,7 @@ main() { debug "$BASHTARD_NAME/main" "Handling subcommand '$BASHTARD_COMMAND'" - subcommand_src="$BASHTARD_BASEDIR/lib/subcommands/$BASHTARD_COMMAND.bash" + subcommand_src="$BASHTARD_LIBDIR/subcommands/$BASHTARD_COMMAND.bash" debug "$BASHTARD_NAME/main" "Checking $subcommand_src" diff --git a/lib/subcommands/sync.bash b/lib/subcommands/sync.bash index af5f282..8fce0b6 100644 --- a/lib/subcommands/sync.bash +++ b/lib/subcommands/sync.bash @@ -25,7 +25,7 @@ subcommand() while read -r playbook do info "bashtard/sync" "Syncing $playbook" - "$BASHTARD_BASEDIR/bin/$BASHTARD_NAME" sync "$playbook" + "$BASHTARD_BIN" sync "$playbook" done < "$BASHTARD_ETCDIR/registry.d/${BASHTARD_PLATFORM[fqdn]}" } diff --git a/lib/subcommands/sysinfo.bash b/lib/subcommands/sysinfo.bash index 5010798..7b83e32 100644 --- a/lib/subcommands/sysinfo.bash +++ b/lib/subcommands/sysinfo.bash @@ -1,8 +1,9 @@ #!/usr/bin/env bash subcommand() { - printf "%-15s %s\n" "basedir" "$BASHTARD_BASEDIR" printf "%-15s %s\n" "etcdir" "$BASHTARD_ETCDIR" + printf "%-15s %s\n" "libdir" "$BASHTARD_LIBDIR" + printf "%-15s %s\n" "sharedir" "$BASHTARD_SHAREDIR" for key in "${!BASHTARD_PLATFORM[@]}" do diff --git a/lib/util.bash b/lib/util.bash index 72a41a8..98bdc95 100644 --- a/lib/util.bash +++ b/lib/util.bash @@ -38,8 +38,8 @@ config_for() { fi files+=( - "$BASHTARD_BASEDIR/etc/os.d/${BASHTARD_PLATFORM[key]}" - "$BASHTARD_BASEDIR/etc/defaults" + "$BASHTARD_SHAREDIR/os.d/${BASHTARD_PLATFORM[key]}" + "$BASHTARD_SHAREDIR/defaults" ) # Check configuration files diff --git a/share/defaults b/share/defaults new file mode 100644 index 0000000..d3d220c --- /dev/null +++ b/share/defaults @@ -0,0 +1,4 @@ +app.ssh=ssh + +fs.bindir=/usr/bin +fs.etcdir=/etc diff --git a/share/os.d/freebsd b/share/os.d/freebsd new file mode 100644 index 0000000..5e6732b --- /dev/null +++ b/share/os.d/freebsd @@ -0,0 +1 @@ +fs.etcdir=/usr/local/etc -- cgit v1.1