summarylogtreecommitdiffstats
path: root/flowee.install
diff options
context:
space:
mode:
Diffstat (limited to 'flowee.install')
-rw-r--r--flowee.install49
1 files changed, 49 insertions, 0 deletions
diff --git a/flowee.install b/flowee.install
new file mode 100644
index 000000000000..694e989c2540
--- /dev/null
+++ b/flowee.install
@@ -0,0 +1,49 @@
+_bc_user=flowee
+_bc_group=flowee
+
+post_install() {
+ _mkuser
+ _dir="/var/lib/flowee"
+ _log="/var/log/flowee"
+ _cnf="/etc/flowee"
+ if test ! -d "$_dir"; then
+ mkdir -m 750 "$_dir"
+ # disable Copy-On-Write (btrfs directories only)
+ # This avoids lots of known db-corruption issues
+ _is_btrfs "$_dir" && chattr +C "$_dir"
+ fi
+ mkdir -p -m 770 "$_log"
+ chown -R $_bc_user:$_bc_group "$_dir" "$_cnf" "$_log"
+}
+
+post_upgrade() {
+ _mkuser
+}
+
+
+# ------------------------------------------------------------------------------
+# helper functions for creating flowee user / group
+# ------------------------------------------------------------------------------
+
+_mkuser() {
+ getent passwd $_bc_user &>/dev/null || {
+ echo -n "Creating flowee user... "
+ grep -E "^$_bc_group:" /etc/group >/dev/null || groupadd $_bc_group
+ useradd -m -d /etc/flowee -g $_bc_group -s /usr/bin/nologin $_bc_user 2>/dev/null
+ echo "done"
+ }
+}
+
+# ------------------------------------------------------------------------------
+# helper functions for disabling btrfs Copy-On-Write (CoW)
+# https://wiki.archlinux.org/index.php/Btrfs#Copy-On-Write_.28CoW.29
+# ------------------------------------------------------------------------------
+
+# check if dir is btrfs
+_is_btrfs() {
+ if [[ $(findmnt --target $1 --output FSTYPE --noheadings) == 'btrfs' ]]; then
+ return 0
+ else
+ return 1
+ fi
+}