diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery new file mode 100644 index 000000000..6521804a2 --- /dev/null +++ b/freebsd/rc.d/homebrewery @@ -0,0 +1,51 @@ +#!/bin/sh +# +# PROVIDE: homebrewery +# REQUIRE: NETWORKING +# KEYWORD: shutdown + +# Author: S Robertson +# Version: 1.0.0 + +# Description: +# This script runs HomeBrewery as a service under the supplied user on boot + +# How to use: +# Place this file in /usr/local/etc/rc.d/ +# Add homebrewery_enable="YES" to /etc/rc.config +# (Optional) To run as non-root, add homebrewery_runAs="homebrewery" to /etc/rc.config +# (Optional) To pass HomeBrewery args, add homebrewery_args="" to /etc/rc.config + +# Freebsd rc library +. /etc/rc.subr + +# General Info +name="homebrewery" # Safe name of program +program_name="homebrewery" # Name of exec +title="HomeBrewery" # Title to display in top/htop + +# RC.config vars +load_rc_config $name # Loading rc config vars +: ${homebrewery_enable="NO"} # Default: Do not enable HomeBrewery +: ${homebrewery_runAs="root"} # Default: Run HomeBrewery as root + +# Freebsd Setup +rcvar=homebrewery_enable # Enables the rc.conf YES/NO flag +pidfile="/var/run/${program_name}.pid" # File that allows the system to keep track of HomeBrewery status + +# Env Setup +export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user +export NODE_ENV="local" +export PORT=8001 + +# Command Setup +exec_cmd="/homebrewery/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally +output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file + +# Command +command="/usr/sbin/daemon" +command_args="-r -t ${title} -u ${homebrewery_runAs} -o ${output_file} -P ${pidfile} /usr/local/bin/node ${exec_cmd} ${homebrewery_args}" + +# Loading Config +load_rc_config ${name} +run_rc_command "$1"