#! /usr/bin/env bash
#
# wmstartup service common functions
# Copyright (C) 2018 salt <salt@lap-th-e560-0>
#
# Distributed under terms of the MIT license.
#

service_name="unnamed_service"
service_process="true"

function svc_log() {
	if [ -z ${1+x} ]; then return 1; fi
	dtf_log "$service_name: $1"
}

function prestart() {
	if ! which $service_process > /dev/null 2>&1; then
		svc_log "Could not find process"
		return 1
	fi
	return 0
}

function start() {
	if ! prestart; then
		svc_log "Failed pre-start checks"
		return 1
	fi
	svc_log "Starting"
	$service_process > /dev/null 2>&1 &
	return 0
}

function stop() {
	svc_log "Stopping"
	killall $service_process &
	for i in {1..100}; do
		if ! isup; then break; fi
		sleep 0.01
		if (( $i > 99 )); then
			svc_log "Stopping with prejudice"
			killall -9 $service_process
		fi
	done
	return $?
}

function isup() {
	pgrep "$service_process" > /dev/null 2>&1
	return $?
}