post_install() { # create user and set ownership useradd -d /opt/anki-sync-server -r -s /sbin/nologin anki-sync-server chown -R anki-sync-server /opt/anki-sync-server chgrp -R anki-sync-server /opt/anki-sync-server # install prerequisites as stated on the website echo "installing python packages as anki-sync-server user..." sudo -u anki-sync-server pip install -r /opt/anki-sync-server/requirements.txt --user --no-warn-script-location append_nginx_config # link systemd service file ln -s /opt/anki-sync-server/plugins/systemd/anki-sync-server.service /usr/lib/systemd/system/ systemctl enable anki-sync-server systemctl start anki-sync-server # post installation instructions echo "===============================================" echo "Check the manpage for post-install instructions" echo "===============================================" } post_remove(){ # stop service (and remove systemd files) systemctl stop anki-sync-server systemctl disable anki-sync-server echo "Executing systemctl daemon-reload" systemctl daemon-reload # remove user (& group) getent passwd anki-sync-server &>/dev/null && userdel anki-sync-server || true getent group anki-sync-server &>/dev/null && groupdel anki-sync-server || true # remove systemd service symlink rm -f '/usr/lib/systemd/system/anki-sync-server.service' echo "===================================================================" echo "rm -rf /opt/anki-sync-server to remove the database and cache files" echo "===================================================================" } pre_upgrade(){ echo "stopping anki-sync-server.service..." sudo systemctl stop anki-sync-server.service cd "/opt/anki-sync-server" local _auth_="auth.db" local _coll_="collections" local _sess_="session.db" if [ -f "${_auth_}" ]; then sudo mv -v "${_auth_}" "${_auth_}.BAK" fi if [ -d "${_coll_}" ]; then sudo mv -v "${_coll_}" "${_coll_}.BAK" fi if [ -f "${_sess_}" ]; then sudo mv -v "${_sess_}" "${_sess_}.BAK" fi } post_upgrade(){ # install prerequisites as stated on the website echo "installing python packages as anki-sync-server user..." sudo -u anki-sync-server pip install -r /opt/anki-sync-server/requirements.txt --user append_nginx_config cd "/opt/anki-sync-server" local _auth_="auth.db" local _coll_="collections" local _sess_="session.db" if [ -f "${_auth_}.BAK" ]; then sudo mv -v "${_auth_}.BAK" "${_auth_}" fi if [ -d "${_coll_}.BAK" ]; then sudo mv -v "${_coll_}.BAK" "${_coll_}" fi if [ -f "${_sess_}.BAK" ]; then sudo mv -v "${_sess_}.BAK" "${_sess_}" fi sudo chown -R anki-sync-server /opt/anki-sync-server sudo chgrp -R anki-sync-server /opt/anki-sync-server echo "reloading systemd daemon..." sudo systemctl daemon-reload echo "starting anki-sync-server.service..." sudo systemctl start anki-sync-server echo "restarting nginx..." sudo systemctl restart nginx } function append_nginx_config() { # append nginx config to nginx config file echo "appending nginx server config to /etc/nginx/nginx.conf" local _config_dir_="/etc/nginx/" local _pacsave_="${_config_dir_}/nginx.conf.pacsave" local _config_="${_config_dir_}/nginx.conf" if (grep "anki-sync-server-request-unchunker" "${_config_}" --quiet); then echo "nginx config aleady updated!" else sudo cp "${_config_}" "${_pacsave_}" sudo awk -f /opt/anki-sync-server/plugins/nginx/append.awk \ "${_pacsave_}" > "${_config_}" fi }