aboutsummaryrefslogtreecommitdiff
path: root/duply/scripts
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-03-24 18:26:05 +0100
committerSébastien Dailly <sebastien@chimrod.com>2021-03-24 18:26:05 +0100
commit7889898acbf7023081a23974ac13aafd4949498b (patch)
tree3d852cc619f6f20370ee525014b157740717197b /duply/scripts
parentce7d45cbb37b25801cf9640a824a7c21554ebde9 (diff)
Update duply script for local restore
Diffstat (limited to 'duply/scripts')
-rw-r--r--duply/scripts/duplicity/duply_common.sh10
-rwxr-xr-xduply/scripts/duplicity/gen_config_restore.sh54
2 files changed, 63 insertions, 1 deletions
diff --git a/duply/scripts/duplicity/duply_common.sh b/duply/scripts/duplicity/duply_common.sh
index a55bfd6..9e2ef66 100644
--- a/duply/scripts/duplicity/duply_common.sh
+++ b/duply/scripts/duplicity/duply_common.sh
@@ -30,7 +30,15 @@ read() {
. ~/.config/ovh/duplicity-$(whoami).sh
#Generate the configuration
-~/scripts/duplicity/gen_config_remote.sh "${JSON_CONF}"
+case $2 in
+ restore)
+ export COLD_PATH=$(zenity --file-selection --directory --title="Chemin des sauvegardes")
+ ~/scripts/duplicity/gen_config_restore.sh "${JSON_CONF}"
+ ;;
+ *)
+ ~/scripts/duplicity/gen_config_remote.sh "${JSON_CONF}"
+ ;;
+esac
TARGET="multi:${JSON_CONF}?mode=mirror&onfail=abort"
diff --git a/duply/scripts/duplicity/gen_config_restore.sh b/duply/scripts/duplicity/gen_config_restore.sh
new file mode 100755
index 0000000..19e1475
--- /dev/null
+++ b/duply/scripts/duplicity/gen_config_restore.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+if test "x${PCA_OS_REGION_NAME}" = x; then
+ PCA_OS_REGION_NAME=${OS_REGION_NAME}
+fi
+
+if test "x${HOT_OS_REGION_NAME}" = x; then
+ HOT_OS_REGION_NAME=${OS_REGION_NAME}
+fi
+
+envsubst > $1 << EOF
+[
+ {
+ "description": "Cold storage",
+ "url": "file://${COLD_PATH}",
+ "prefixes": ["cold_"]
+ },
+ {
+ "description": "Hot storage",
+ "url": "swift://${STORAGE_NAME}_indexes",
+ "env": [
+ {
+ "name": "SWIFT_AUTHURL",
+ "value": "${OS_AUTH_URL}"
+ },
+ {
+ "name": "SWIFT_AUTHVERSION",
+ "value": "${OS_IDENTITY_API_VERSION}"
+ },
+ {
+ "name": "SWIFT_PROJECT_DOMAIN_NAME",
+ "value": "${OS_PROJECT_DOMAIN_NAME}"
+ },
+ {
+ "name": "SWIFT_TENANTID",
+ "value": "${OS_TENANT_ID}"
+ },
+ {
+ "name": "SWIFT_USERNAME",
+ "value": "${OS_USERNAME}"
+ },
+ {
+ "name": "SWIFT_PASSWORD",
+ "value": "${OS_PASSWORD}"
+ },
+ {
+ "name": "SWIFT_REGIONNAME",
+ "value": "${HOT_OS_REGION_NAME}"
+ }
+ ],
+ "prefixes": ["hot_"]
+ }
+]
+EOF