#!/bin/sh
set -e
svcdir="${svcdir:-$HOME/.svc}"
PATH="$PATH:$svcdir"
[ -d ${svcdir} ] || mkdir -p ${svcdir}
cd ${svcdir} || exit 1
fn_usage() {
printf "Usage: %s [ -k | -r | -s ] \n" "$(basename "$0")"
}
if_exec() {
if ! [ $(stat -l ${2} | awk '{print $1}') = "-rwxr-xr-x" ];then
printf "%s: %s is not executable \n" "$(basename "$0")" "$2"
fi
}
case $1 in
-k)
if_exec ${2}
${2} ${1}
;;
-r)
if_exec ${2}
${2} ${1}
;;
-s)
if_exec ${2}
${2} ${1}
;;
esac
@prologic@twtxt.net what do you think about this thing?
here’s a basic sketch in Go
package main
import (
"flag"
"fmt"
"os"
)
var (
kill = flag.String("k", "", "stop a unit")
restart = flag.String("r", "", "restart a unit")
start = flag.String("s", "", "start a unit")
)
main() {
flag.Parse()
if flag.NArg() == 0 {
fmt.Fprintf(os.Stderr, "Usage: svc [options] [service] \n")
flag.PrintDefaults()
os.Exit(1)
}
}
@novaburst@twt.nfld.uk What’s this sorry? 🤔 Gimme a one or two sentence description 🤗
@prologic@twtxt.net attempt to write a one-off (without daemon) service manager, by the way
@novaburst@twt.nfld.uk Ahh I see!
Looks good so far, keep going 👌