update docs

This commit is contained in:
AJ ONeal
2020-06-26 06:32:22 +00:00
parent ace876458e
commit d32b7bdd44
2 changed files with 101 additions and 48 deletions

78
serviceman/README.md Normal file
View File

@@ -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
```

View 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?
}