Files
vim-ale/serviceman/serviceman.bash
2020-05-04 11:30:42 +00:00

55 lines
1.4 KiB
Bash

#!/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?