doinst.sh (1064B)
1 config() { 2 NEW="$1" 3 OLD="$(dirname $NEW)/$(basename $NEW .new)" 4 # If there's no config file by that name, mv it over: 5 if [ ! -r $OLD ]; then 6 mv $NEW $OLD 7 elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then 8 # toss the redundant copy 9 rm $NEW 10 fi 11 # Otherwise, we leave the .new copy for the admin to consider... 12 } 13 14 preserve_perms() { 15 NEW="$1" 16 OLD="$(dirname $NEW)/$(basename $NEW .new)" 17 if [ -e $OLD ]; then 18 cp -a $OLD ${NEW}.incoming 19 cat $NEW > ${NEW}.incoming 20 mv ${NEW}.incoming $NEW 21 fi 22 config $NEW 23 } 24 25 26 if ! getent passwd mautrix-whatsapp >/dev/null; then 27 useradd mautrix-whatsapp \ 28 --comment 'Mautrix whatsapp matrix bridge' \ 29 --user-group \ 30 --system \ 31 --home-dir /var/lib/mautrix-whatsapp \ 32 || true 33 fi 34 35 preserve_perms etc/rc.d/rc.mautrix-whatsapp.new 36 preserve_perms etc/mautrix-whatsapp/config.yaml.new 37 38 chown root:mautrix-whatsapp etc/mautrix-whatsapp 39 chown mautrix-whatsapp:mautrix-whatsapp var/lib/mautrix-whatsapp 40 chown mautrix-whatsapp:mautrix-whatsapp var/log/mautrix-whatsapp