aur/gerrit.install
2019-03-22 12:47:59 -07:00

127 lines
3.6 KiB
Bash

#!/bin/sh
## CHANGE the following two variables according to your preference
## /bin/true: start/enable systemd service during installation
## /bin/false: do not touch systemd services, manually enable/start the service
_service_start=/bin/false
_service_enable=/bin/true
_service_name=gerrit.service
_service_username=gerrit
_service_groupname=${_service_username}
_service_install_dir=/var/lib/${_service_username}
_service_cache_dir=
_service_log_dir=/var/log/${_service_username}
_set_dir_permissions() {
for d in "${_service_install_dir}" "${_service_cache_dir}"; do
[ -n "${d}" -a -d "${d}" ] && chown -R ${_service_username}:${_service_groupname} ${d}
done
}
# Test whether the system is running with systemd.
_is_running_systemd() {
ps -p 1 | grep -q "systemd"
}
# Test whether the systemd service is enabled (presuming that systemd is running).
_is_systemd_service_enabled() {
/usr/bin/systemctl is-enabled --quiet ${_service_name} 2>/dev/null
}
_stop_systemd_service() {
if `eval ${_service_start}`; then
/usr/bin/systemctl stop ${_service_name} 2>/dev/null
fi;
return 0;
}
_start_systemd_service() {
_is_running_systemd || return 0;
_is_systemd_service_enabled || return 0;
if `eval ${_service_start}`; then
/usr/bin/systemctl start ${_service_name};
fi;
return 0;
}
_disable_systemd_service() {
if `eval ${_service_enable}`; then
_is_systemd_service_enabled && /usr/bin/systemctl disable ${_service_name} 2>/dev/null
fi;
return 0;
}
# Install systemd service.
_enable_systemd_service() {
_is_running_systemd || return 0;
_is_systemd_service_enabled && return 0;
if `eval ${_service_enable}`; then
/usr/bin/systemctl enable ${_service_name} 2>/dev/null
fi;
return 0;
}
_reload_systemd_service() {
_is_running_systemd || return;
/usr/bin/systemctl --system daemon-reload 2>/dev/null
return 0;
}
# arg 1: the new package version
pre_install() {
/bin/true
}
# arg 1: the new package version
post_install() {
getent passwd ${_service_username} > /dev/null || /usr/sbin/useradd --user-group --home-dir "${_service_install_dir}" --shell "/bin/bash" ${_service_username} &> /dev/null
_set_dir_permissions
_enable_systemd_service
_start_systemd_service
echo " To initialize gerrit, see https://gerrit-documentation.storage.googleapis.com/Documentation/2.16.7/index.html"
echo " To setup gerrit do:"
echo " sudo su - gerrit"
echo " java -jar /usr/share/java/gerrit/gerrit.war init -d /var/lib/gerrit"
}
# arg 1: the new package version
# arg 2: the old package version
pre_upgrade() {
_stop_systemd_service
_disable_systemd_service
}
# arg 1: the new package version
# arg 2: the old package version
post_upgrade() {
_set_dir_permissions
_enable_systemd_service
_reload_systemd_service
_start_systemd_service
echo " To update gerrit, see https://gerrit-documentation.storage.googleapis.com/Documentation/2.16.7/index.html"
echo " To update gerrit do:"
echo " sudo su - gerrit"
echo " java -jar /usr/share/java/gerrit/gerrit.war init -d /var/lib/gerrit"
echo " java -jar /usr/share/java/gerrit/gerrit.war reindex"
}
# arg 1: the old package version
pre_remove() {
_stop_systemd_service
_disable_systemd_service
return 0;
}
# arg 1: the old package version
post_remove() {
getent passwd ${_service_username} > /dev/null && /usr/sbin/userdel ${_service_username} &>/dev/null
for d in ${_service_cache_dir}; do
[ -n "${d}" -a -d "${d}" ] && rm -rf "${d}"
done
for d in ${_service_install_dir} ${_service_log_dir}; do
[ -n "${d}" -a -d "${d}" ] && echo ">>> directory ${d} needs to be removed manually"
done
return 0;
}
# vim:set ts=2 sw=2 et: