aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile28
-rwxr-xr-xbin/bashtard14
-rw-r--r--lib/main.bash4
-rw-r--r--lib/subcommands/sync.bash2
-rw-r--r--lib/subcommands/sysinfo.bash3
-rw-r--r--lib/util.bash4
-rw-r--r--share/defaults (renamed from etc/defaults)0
-rw-r--r--share/os.d/freebsd (renamed from etc/os.d/freebsd)0
8 files changed, 41 insertions, 14 deletions
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/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/etc/defaults b/share/defaults
index d3d220c..d3d220c 100644
--- a/etc/defaults
+++ b/share/defaults
diff --git a/etc/os.d/freebsd b/share/os.d/freebsd
index 5e6732b..5e6732b 100644
--- a/etc/os.d/freebsd
+++ b/share/os.d/freebsd