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