mirror of
https://github.com/archlinux/aur.git
synced 2026-02-06 12:02:21 +01:00
127 lines
3.6 KiB
Bash
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:
|