#!/bin/bash declare src="/home/jketreno/mailman2" declare dst="unset" fail() { echo "${*}" >&2 if [[ ! -d "${src}" ]] && [[ -d "${dst}" ]]; then sudo mv "${dst}" "${src}" fi exit 1 } # Full set of lists to migrate #lists=(family jcubed test mosj vansicklefamily ) # Everything has been migrated lists=() if [[ -d "${src}" ]]; then sudo chown jketreno:jketreno -R "${src}" fi if ! ssh email.ketrenos.com \ "sudo rsync --delete -aprl --progress /var/lib/mailman/ ${src}/"; then fail "rsync" fi dst="/home/jketreno/docker/webserver/data/mailman/core/mailman2" if ! sudo mv "${src}" "${dst}"; then fail "mv ${src} ${dst}" fi for list in "${lists[@]}"; do echo "Initializing $list" if ! docker exec -it ketrenet-mailman-core \ mailman --run-as-root import21 "${list}@ketrenos.com" \ "/opt/mailman/mailman2/lists/${list}/config.pck"; then fail "mailman --run-as-root import21 $list@ketrenos.com /opt/mailman/mailman2/lists/${list}/config.pck" fi done new_dst="/home/jketreno/docker/webserver/data/mailman/web/config/mailman2" if ! sudo mv "${dst}" "${new_dst}"; then fail "mv ${dst} ${new_dst}" fi dst="${new_dst}" for list in "${lists[@]}"; do echo "Hyper Kitty archive $list" if ! docker exec -it ketrenet-mailman-web \ python manage.py hyperkitty_import \ -l "${list}@ketrenos.com" \ "/opt/mailman-web/mailman2/archives/private/${list}.mbox/${list}.mbox"; then fail "python manage.py hyperkitty_import" fi if ! docker exec -it ketrenet-mailman-web \ python manage.py update_index_one_list "${list}@ketrenos.com"; then fail "python manage.py update_index_one_list ${list}@ketrenos.com" fi done if ! sudo mv "${dst}" "${src}"; then fail "mv ${dst} ${src}" fi