#!/bin/sh
##Copyright: Cloux <cloux@rote.ch>
##License: CC0/Public Domain
##Comment: adapted from https://github.com/cloux/runit-base
exec 2>&1

# Get service name (the upper directory name)
UPDIR=$(dirname $PWD)
SERVICE=${UPDIR##*/}
LOGUSER=_runit-log
RUNITLOG=/var/log/runit
if [ "$(id -u)" -ge '1000' ] ; then #user log
	LOGUSER="$(id -u -n)"
	RUNITLOG=/home/$LOGUSER/.runit/log
fi
LOGDIR=$RUNITLOG/$SERVICE
BUFFER=2048

#Read conf file
if [ -r ./conf ]; then
    . ./conf
fi
if [ -r /etc/sv/svlogd/conf ] && [ ! -r ./conf ]; then
      . /etc/sv/svlogd/conf
fi

if [ "$(id -u)" = '0' ] ; then #only root can change uid
  [ ! -d "$LOGDIR" ] && install -m 750 -o $LOGUSER -g adm -d "$LOGDIR"
else
  [ ! -d "$LOGDIR" ] && install -m 750  -d "$LOGDIR"
fi
if [ ! -e "$LOGDIR/.pkg"  ] && [ -e "$UPDIR/.meta/pkg" ]; then
	cp "$UPDIR/.meta/pkg" "$LOGDIR/.pkg"
fi

if [ "$(id -u)" = '0' ] ; then #only root can change uid
  # manage svlogd config file
  if [ -f "$PWD"/log.config ]; then
    install -Tm 0644 -o $LOGUSER "$PWD"/log.config "$LOGDIR"/config
  fi
  if [ -f /etc/sv/svlogd/log.config ] && [ ! -f "$PWD"/log.config ]; then
    install -Tm 0644 -o $LOGUSER /etc/sv/svlogd/log.config "$LOGDIR"/config
  fi
  exec chpst -u ${LOGUSER} svlogd -tt -b $BUFFER "$LOGDIR"
else
  exec svlogd -tt -b $BUFFER "$LOGDIR"
fi
