update docs
authorAJ ONeal <aj@therootcompany.com>
Fri, 26 Jun 2020 06:32:22 +0000 (06:32 +0000)
committerAJ ONeal <aj@therootcompany.com>
Fri, 26 Jun 2020 06:32:22 +0000 (06:32 +0000)
serviceman/README.md [new file with mode: 0644]
serviceman/install.sh

diff --git a/serviceman/README.md b/serviceman/README.md
new file mode 100644 (file)
index 0000000..497bf1f
--- /dev/null
@@ -0,0 +1,78 @@
+---
+title: Serviceman
+homepage: https://git.rootprojects.org/root/serviceman
+tagline: |
+  Serviceman: cross-platform service management for Linux, Mac, and Windows.
+description: |
+  Serviceman is a hassle-free wrapper around your system launcher. It works with the default system launcher to make it easy to start _user_- and _system_-level services, such as webservers, backup scripts, network and system tools, etc.
+
+  Supports
+    - `launchctl` (macOS)
+    - `systemctl` (Linux)
+    - The Registry (Windows)
+---
+
+Serviceman can run an app in just about any programming language very simply.
+
+If you'd like to learn what `serviceman` does without actually making changes,
+add the `--dry-run` option.
+
+### Node.js
+
+**Development Server**
+
+```bash
+pushd ./my-node-app/
+sudo env PATH="$PATH" \
+    serviceman add --cap-net-bind --system npx nodemon
+```
+
+**Production Server**
+
+```bash
+pushd ./my-node-app/
+sudo env PATH="$PATH" \
+    serviceman add --cap-net-bind --system npm start
+```
+
+### Golang
+
+```bash
+pushd ./my-go-package/
+sudo env PATH="$PATH" \
+    serviceman add --system go run -mod=vendor cmd/my-service/*.go --port 3000
+```
+
+```bash
+pushd ./my-go-package/
+go build -mod=vendor cmd/my-service
+sudo env PATH="$PATH" \
+    serviceman add --cap-net-bind --system ./my-service --port 80
+```
+
+### And even bash!
+
+```bash
+sudo env PATH="$PATH" serviceman add bash ./backup.sh /mnt/data
+```
+
+### Use `--dry-run` to see the generated launcher config:
+
+```bash
+sudo env PATH="$PATH" \
+    serviceman add --dryrun bash ./backup.sh /mnt/data
+```
+
+### See the (sub)command help
+
+The main help, showing all subcommands:
+
+```bash
+serviceman --help
+```
+
+Sub-command specific help:
+
+```bash
+serviceman add --help
+```
index 690d44a6d30dbe1218c1e5fe46887af405446190..06ed1e7c89042762815d1a42ef3d2e41174bcc21 100644 (file)
@@ -1,54 +1,29 @@
 #!/bin/bash
 
-# title: Serviceman
-# homepage: https://git.rootprojects.org/root/serviceman
-# tagline: |
-#   Serviceman: cross-platform service management for Linux, Mac, and Windows.
-# description: |
-#   Serviceman is a hassle-free wrapper around your system launcher. It works with `launchctl` (macOS), `systemctl` (Linux), and the Windows Registry to make it easy to start _user_ and _system_ level services, such as webservers, backup scripts, network and system tools, etc.
-# 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
+    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
+    # 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/"
+    # 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?
+    # 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?
+
+}