Skip to content

Instantly share code, notes, and snippets.

@drfill
Last active December 27, 2015 01:59
Show Gist options
  • Select an option

  • Save drfill/7249315 to your computer and use it in GitHub Desktop.

Select an option

Save drfill/7249315 to your computer and use it in GitHub Desktop.
#!/bin/sh
# PROVIDE: teamcity
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Configuration settings for teamcity in /etc/rc.conf:
#
# teamcity_enable (bool):
# Set to "NO" by default.
# Set it to "YES" to enable teamcity
#
. /etc/rc.subr
name="teamcity"
rcvar=teamcity_enable
load_rc_config "${name}"
: ${teamcity_enable="NO"}
: ${teamcity_home="/usr/local/TeamCity"}
: ${teamcity_data_path="~/.BuildServer"}
: ${teamcity_user="www"}
: ${teamcity_group="www"}
: ${teamcity_log_dir="/var/log/teamcity"}
: ${teamcity_log_file="$teamcity_log_dir/teamcity.log"}
: ${java_opts="-Djava.awt.headless=true -Xms750m -Xmx750m -XX:MaxPermSize=270m"}
: ${java_home="/usr/local/openjdk6"}
pidfile="/var/run/teamcity/teamcity.pid"
command="/usr/sbin/daemon"
java_cmd="${java_home}/bin/java"
procname="${java_cmd}"
command_args="-p ${pidfile} ${java_cmd} ${java_opts} -Djava.util.logging.config.file=${teamcity_home}/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Dlog4j.configuration=file:${teamcity_home}/bin/../conf/teamcity-server-log4j.xml -Dteamcity_logs=${teamcity_log_dir} -Djava.endorsed.dirs=${teamcity_home}/endorsed -classpath ${teamcity_home}/bin/bootstrap.jar:${teamcity_home}/bin/tomcat-juli.jar -Dcatalina.base=${teamcity_home} -Dcatalina.home=${teamcity_home} -Djava.io.tmpdir=${teamcity_home}/temp org.apache.catalina.startup.Bootstrap > ${teamcity_log_file} 2>&1"
required_files="${java_cmd}"
start_precmd="teamcity_prestart"
start_cmd="teamcity_start"
teamcity_prestart() {
if [ -d "${teamcity_home}" ]; then
chown -R "${teamcity_user}:${teamcity_group}" "${teamcity_home}"
fi
if [ ! -d "${teamcity_log_dir}" ]; then
install -d -o "${teamcity_user}" -g "${teamcity_group}" -m 750 "${teamcity_log_dir}"
fi
if [ ! -f "${teamcity_log_file}" ]; then
touch "${teamcity_log_file}"
chown "${teamcity_user}:${teamcity_group}" "${teamcity_log_file}"
chmod 640 "${teamcity_log_file}"
fi
if [ ! -d "/var/run/teamcity" ]; then
install -d -o "${teamcity_user}" -g "${teamcity_group}" -m 750 "/var/run/teamcity"
fi
}
teamcity_start()
{
check_startmsgs && echo "Starting ${name}."
su -m ${teamcity_user} -c "TEAMCITY_DATA_PATH=${teamcity_data_path} exec ${command} ${command_args}"
}
run_rc_command "$1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment