burn the logs and use 'install.bash'
[webi-installers/.git] / serviceman / install.bash
diff --git a/serviceman/install.bash b/serviceman/install.bash
new file mode 100644 (file)
index 0000000..df80877
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# title: Serviceman
+# homepage: https://git.rootprojects.org/root/serviceman
+# tagline: cross-platform service management for Linux, Mac, and Windows
+# description: |
+#   A system laucher that wraps `launchctl` (macOS), `systemctl` (Linux),
+#   and the Windows Registry to work cross-platform.
+# examples: |
+#
+#   Works with anything, including
+#
+#   ### Node.js
+#
+#   ```bash
+#   serviceman add --name my-service node ./serve.js --port 3000
+#   ```
+#
+#   ### Golang
+#
+#   ```bash
+#   go build -mod vendor cmd/my-service
+#   serviceman add ./my-service --port 3000
+#   ```
+#
+#   ### And even bash!
+#
+#   ```bash
+#   serviceman add --name backuper bash ./backup.sh /mnt/data
+#   ```
+
+set -e
+set -u
+
+# Test if in PATH
+set +e
+my_serviceman=$(command -v serviceman)
+set -e
+if [ -n "$my_serviceman" ]; then
+       if [ "$my_serviceman" != "$HOME/.local/bin/serviceman" ]; then
+               echo "a serviceman installation (which make take precedence) exists at:"
+               echo "    $my_serviceman"
+               echo ""
+       fi
+fi
+
+# Get arch envs, etc
+webi_download "https://rootprojects.org/serviceman/dist/$(uname -s)/$(uname -m)/serviceman" "$HOME/Downloads/serviceman"
+chmod +x "$HOME/Downloads/serviceman"
+mv "$HOME/Downloads/serviceman" "$HOME/.local/bin/"
+
+# add to ~/.local/bin to PATH, just in case
+webi_path_add $HOME/.local/bin # > /dev/null 2> /dev/null
+# TODO inform user to add to path, apart from pathman?