OSDN Git Service

improve the backup and restore scripts. master bubbleupnp-server-0.2.4
authorwhitestar <whitestar@users.osdn.me>
Tue, 11 Jan 2022 11:13:14 +0000 (20:13 +0900)
committerwhitestar <whitestar@users.osdn.me>
Tue, 11 Jan 2022 11:13:14 +0000 (20:13 +0900)
cookbooks/bubbleupnp-server/CHANGELOG.md
cookbooks/bubbleupnp-server/templates/default/opt/docker-compose/app/bubbleupnp-server/backup.sh
cookbooks/bubbleupnp-server/templates/default/opt/docker-compose/app/bubbleupnp-server/restore.sh
cookbooks/bubbleupnp-server/version

index e09da87..484115e 100644 (file)
@@ -1,5 +1,9 @@
 # bubbleupnp-server CHANGELOG
 
+0.2.4
+-----
+- improve the backup and restore scripts.
+
 0.2.3
 -----
 - add backup cron configuration.
index 44eee28..878bb29 100755 (executable)
@@ -1,9 +1,21 @@
 #!/bin/sh
+set -e
+
+backup_dir=./bak
+backup_tmp_dir=${backup_dir}.tmp
+workdir=<%= @workdir %>
+
+echo 'Configurations backup started.'
+sudo rm -rf ${backup_tmp_dir}
+sudo mkdir -p ${backup_tmp_dir}
 
-backup_dir=bak
 container_id=`sudo docker-compose ps -q bubbleupnp-server`
+sudo docker cp ${container_id}:${workdir}/configuration.xml ${backup_tmp_dir}
+sudo docker cp ${container_id}:${workdir}/cache ${backup_tmp_dir}
+sudo docker cp ${container_id}:${workdir}/Playlists ${backup_tmp_dir}
 
-sudo mkdir -p ./${backup_dir}
-sudo docker cp ${container_id}:<%= @workdir %>/configuration.xml ./${backup_dir}
-sudo docker cp ${container_id}:<%= @workdir %>/cache ./${backup_dir}
-sudo docker cp ${container_id}:<%= @workdir %>/Playlists ./${backup_dir}
+if cat ${backup_tmp_dir}/configuration.xml | grep '<firstRun>' | grep false > /dev/null 2>&1; then
+  sudo rm -rf $backup_dir
+  sudo mv $backup_tmp_dir $backup_dir
+fi
+echo 'Configurations backup done.'
index 74351c6..254e4b7 100755 (executable)
@@ -1,12 +1,16 @@
 #!/bin/bash
+set -e
 
-backup_dir=bak
-container_id=`sudo docker-compose ps -q bubbleupnp-server`
+backup_dir=./bak
+workdir=<%= @workdir %>
 
+echo 'Configurations restore started.'
+container_id=`sudo docker-compose ps -q bubbleupnp-server`
 # Note: `docker cp` chown root:root
-sudo docker cp ./${backup_dir}/configuration.xml ${container_id}:<%= @workdir %>/
-sudo docker cp ./${backup_dir}/cache ${container_id}:<%= @workdir %>/
-sudo docker cp ./${backup_dir}/Playlists ${container_id}:<%= @workdir %>/
+sudo docker cp ${backup_dir}/configuration.xml ${container_id}:${workdir}/
+sudo docker cp ${backup_dir}/cache ${container_id}:${workdir}/
+sudo docker cp ${backup_dir}/Playlists ${container_id}:${workdir}/
 
 # fix file owner
-sudo docker exec -u root ${container_id} chown -R <%= @file_owner %>:<%= @file_group %> <%= @workdir %>/{configuration.xml,cache,Playlists}
+sudo docker exec -u root ${container_id} chown -R bubbleupnpserver:users ${workdir}/{configuration.xml,cache,Playlists}
+echo 'Configurations restore done.'
\ No newline at end of file