summaryrefslogtreecommitdiff
path: root/playbooks.d/seaweedfs/playbook.bash
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks.d/seaweedfs/playbook.bash')
-rw-r--r--playbooks.d/seaweedfs/playbook.bash48
1 files changed, 48 insertions, 0 deletions
diff --git a/playbooks.d/seaweedfs/playbook.bash b/playbooks.d/seaweedfs/playbook.bash
new file mode 100644
index 0000000..e6c0c4c
--- /dev/null
+++ b/playbooks.d/seaweedfs/playbook.bash
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+
+playbook_add() {
+ local dl_arch
+ local dl_baseurl
+ local dl_binary
+ local dl_version
+
+ # Install seaweedfs
+ case "${BASHTARD_PLATFORM[arch]}" in
+ x86_64) dl_arch=amd64 ;;
+ aarch64) dl_arch=arm64 ;;
+ esac
+
+ dl_baseurl="https://github.com/seaweedfs/seaweedfs/releases/download"
+ dl_binary="$(printf "%s_%s.tar.gz" "${BASHTARD_PLATFORM[os]}" "$dl_arch")"
+ dl_version="$(config "$BASHTARD_PLAYBOOK.version" "3.63")"
+
+ buffer="$(tmpdir)"
+
+ chgdir "$buffer"
+
+ info "$BASHTARD_PLAYBOOK/add" "Fetching $dl_baseurl/$dl_version/$dl_binary"
+ curl -L "$dl_baseurl/$dl_version/$dl_binary" > "$dl_binary"
+
+ tar xzf "$dl_binary"
+ mv -v -- "weed" "$(config "fs.bindir")/weed"
+
+ # Create mount.weed symlink
+ ln -fsv "$(config "fs.bindir")/weed" "$(config "fs.bindir")/mount.weed"
+
+ # Create directories used by seaweedfs
+ mkdir -pv -- "$(config "fs.etcdir")/seaweedfs"
+}
+
+playbook_sync() {
+ file_template "seaweedfs-mount@.service"\
+ > "/etc/systemd/system/seaweedfs-mount@.service"
+}
+
+playbook_del() {
+ # Remove configuration files
+ rm -fr -- "$(config "fs.etcdir")/seaweedfs"
+
+ # Remove downloaded binary and symlinks
+ rm -fr -- "$(config "fs.bindir")/weed"
+ rm -fr -- "$(config "fs.bindir")/mount.weed"
+}