From 23f4ba72d23b0fb31b4e546d99d762dbbd748bad Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Thu, 23 May 2024 13:58:48 -0700 Subject: [PATCH] Add migrate script that was used to copy mailman2 archives Signed-off-by: James Ketrenos --- migrate2-3 | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 migrate2-3 diff --git a/migrate2-3 b/migrate2-3 new file mode 100755 index 0000000..65a8bb2 --- /dev/null +++ b/migrate2-3 @@ -0,0 +1,66 @@ +#!/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