summaryrefslogtreecommitdiff
path: root/extra/quagga/quagga.install
diff options
context:
space:
mode:
Diffstat (limited to 'extra/quagga/quagga.install')
-rw-r--r--extra/quagga/quagga.install36
1 files changed, 36 insertions, 0 deletions
diff --git a/extra/quagga/quagga.install b/extra/quagga/quagga.install
new file mode 100644
index 000000000..c5d88b976
--- /dev/null
+++ b/extra/quagga/quagga.install
@@ -0,0 +1,36 @@
+infodir=/usr/share/info
+filelist=(quagga.info quagga.info-1 quagga.info-2)
+
+post_install() {
+ groupadd -r quagga
+ useradd -MNr -s /bin/false -d /run/quagga -g quagga quagga && passwd -l quagga &>/dev/null
+ install -d -m 750 -o quagga -g quagga /{run,etc,var/log}/quagga
+ post_upgrade
+}
+
+post_upgrade() {
+ if [[ -x /usr/bin/install-info ]]; then
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+ fi
+}
+
+pre_remove() {
+ for d in zebra ripd ripngd bgpd ospfd ospf6d isisd; do
+ /etc/rc.d/$d stop &>/dev/null
+ done
+ if [[ -x /usr/bin/install-info ]]; then
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+ fi
+}
+
+post_remove() {
+ userdel quagga &>/dev/null
+ groupdel quagga &>/dev/null
+ rmdir /{etc,var/log}/quagga
+}
+
+# vim: ft=sh ts=2 sw=2 et: