#!/bin/bash POSTGRES_USER=hackmd error_msg="usage: $0 backup_path db_container uploads_volume" backup_path="${1:?$error_msg}" db_container="${2:?$error_msg}" uploads_volume="${3:?$error_msg}" backup_path="$(realpath "$backup_path")" working_dir="/tmp/codimd-$(date +'%FT%H-%M-%S')" mkdir -p "$working_dir" echo "--- Extracting $backup_path to $working_dir..." 7zr x -o"$working_dir" "$backup_path" echo "--- Restoring the database..." cat "$working_dir/db.sql" | docker exec -i $db_container psql -U $POSTGRES_USER echo "--- Restoring uploads..." docker run --rm -v "$uploads_volume":/data \ -v "$working_dir":/bkp alpine \ tar xf /bkp/uploads.tar rm -rf "$working_dir"