From d9d1989b62bed7eeed987d6def0ac8ccd6032c5e Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Thu, 11 Oct 2018 10:34:44 +0200 Subject: [PATCH] Use DB informations from config/production.yaml in upgrade script Avoid hardcoded values in upgrade script. Avoid asking for DB password. Uses python (usually installed on your system, even with minimal installations) and some of its standard lib modules. --- scripts/upgrade.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/upgrade.sh b/scripts/upgrade.sh index b29615fb1..c70b3b42a 100755 --- a/scripts/upgrade.sh +++ b/scripts/upgrade.sh @@ -23,8 +23,13 @@ fi # Backup database SQL_BACKUP_PATH="$PEERTUBE_PATH/backup/sql-peertube_prod-$(date +"%Y%m%d-%H%M").bak" +DB_USER=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['username'])") +DB_PASS=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['password'])") +DB_HOST=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['hostname'])") +DB_SUFFIX=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['suffix'])") mkdir -p $PEERTUBE_PATH/backup -pg_dump -U peertube -W -h localhost -F c peertube_prod -f "$SQL_BACKUP_PATH" + +PGPASSWORD=$DB_PASS pg_dump -U $DB_USER -h $DB_HOST -F c "peertube${DB_SUFFIX}" -f "$SQL_BACKUP_PATH" # If there is a pre-release, give the user a choice which one to install. RELEASE_VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) -- 2.41.0