X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=buster%2Fsetup_scripts%2Frestore_app.sh;h=817c07d1a062988c597184af43dbb921abf2236e;hb=b7ee9e8b12bb7a6aa8c2e54a81c16bffbfe5e6bb;hp=ae67820f4dbe2fe739615ab7012aab2b0174cfa2;hpb=90bd34dcc5cc4cc01c05da41b00a622b1e7535fb;p=config diff --git a/buster/setup_scripts/restore_app.sh b/buster/setup_scripts/restore_app.sh index ae67820..817c07d 100755 --- a/buster/setup_scripts/restore_app.sh +++ b/buster/setup_scripts/restore_app.sh @@ -6,24 +6,33 @@ if [ "$#" -lt 2 ]; then echo 'Need two arguments: service name and DB name.' false fi -if [ ! "$1" = "pleroma" ] && [ ! "$1" = "peertube" ]; then - echo "Need legal service name (pleroma or peertube)." +if [ ! "$1" = "pleroma_otp" ] && [ ! "$1" = "pleroma_source" ] && [ ! "$1" = "peertube" ]; then + echo "Need legal service name (pleroma_otp or pleroma_source or peertube)." false fi app="$1" db_name="$2" +service="$1" +if [ "${app}" = "pleroma_source" ] || [ "${app}" = "pleroma_otp" ]; then + service=pleroma +fi -service "${app}" stop +service "${service}" stop -mv "/home/plom/${app}_backup.tar" /tmp/ +mv "/home/plom/${service}_backup.tar" /tmp/ cd /tmp -tar xf "${app}_backup.tar" +tar xf "${service}_backup.tar" -su postgres -c "pg_restore -c -C -d ${db_name} ${app}_backup/${db_name}.pgdump" -rm "${app}_backup/${db_name}.pgdump" +su postgres -c "pg_restore -c -1 -d ${db_name} ${service}_backup/${db_name}.pgdump" +rm "${service}_backup/${db_name}.pgdump" -cd "${app}_backup" -for path in $/find . -type f); do +cd "${service}_backup" +for path in $(find . -type f); do + if [ "${app}" = "pleroma_source" ]; then + if [ "${path}" = './opt/pleroma/config/prod.secret.exs' ]; then + continue # skip file that contains passwords + fi + fi target_path=$(echo "${path}" | cut -c2-) source_path=$(realpath "${path}") dir=$(dirname "${target_path}") @@ -32,11 +41,13 @@ for path in $/find . -type f); do done # TODO: Horrible hack, improve. -if [ "${app}" = "pleroma" ]; then +if [ "${app}" = "pleroma_otp" ]; then db_pw=$(cat /etc/pleroma/config.exs | grep password | sed 's/[ ]*password\: *//g' | sed 's/,//g' | sed 's/"//g') elif [ "${app}" = "peertube" ]; then db_pw=$(cat /var/www/peertube/config/production.yaml | grep password | head -1 | sed "s/[ ]*password\: *//g" | sed "s/'//g") fi -su postgres -lc "psql -c \"ALTER USER ${app} WITH PASSWORD '${db_pw}';\"" +if [ "${app}" = "pleroma_otp" ] || [ "${app}" = "peertube" ]; then + su postgres -lc "psql -c \"ALTER USER ${service} WITH PASSWORD '${db_pw}';\"" +fi -service "${app}" stop +service "${service}" start