#!/bin/sh /etc/rc.common # Copyright 2021 Stan Grishin (stangri@melmac.ca) # shellcheck disable=SC3043,SC3060 # shellcheck disable=SC2034 START=80 # shellcheck disable=SC2034 USE_PROCD=1 readonly PKG_VERSION='dev-test' readonly packageName='nebula-service' readonly serviceName="$packageName $PKG_VERSION" readonly sharedMemoryOutput="/dev/shm/$packageName-output" readonly PROG=/usr/sbin/nebula readonly _OK_='\033[0;32m\xe2\x9c\x93\033[0m' readonly _FAIL_='\033[0;31m\xe2\x9c\x97\033[0m' extra_command 'version' 'Show version information' version() { echo "Version: $PKG_VERSION"; } output() { local msg memmsg logmsg [ -t 1 ] && printf "%b" "$@" msg="${1//$serviceName /service }"; if [ "$(printf "%b" "$msg" | wc -l)" -gt 0 ]; then [ -s "$sharedMemoryOutput" ] && memmsg="$(cat "$sharedMemoryOutput")" logmsg="$(printf "%b" "${memmsg}${msg}" | sed 's/\x1b\[[0-9;]*m//g')" logger -t "$packageName" "$(printf "%b" "$logmsg")" rm -f "$sharedMemoryOutput" else printf "%b" "$msg" >> "$sharedMemoryOutput" fi } output_ok() { output "$_OK_"; } output_okn() { output "${_OK_}\\n"; } output_fail() { output "$_FAIL_"; } output_failn() { output "${_FAIL_}\\n"; } # https://gist.github.com/pkuczynski/8665367 # shellcheck disable=SC2086,SC2155 parse_yaml() { local prefix=$2 local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs="$(echo @|tr @ '\034'|tr -d '\015')" sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" "$1" | awk "-F$fs" '{ indent = length($1)/2; vname[indent] = $2; for (i in vname) {if (i > indent) {delete vname[i]}} if (length($3) > 0) { vn=""; for (i=0; i