diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27ed209 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# IGNORE TEST SCRIPT +test.sh diff --git a/ghost/.dependencies/spinner.sh b/ghost/.dependencies/spinner.sh new file mode 100644 index 0000000..423e49b --- /dev/null +++ b/ghost/.dependencies/spinner.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +# Author: Tasos Latsas + +# spinner.sh +# +# Display an awesome 'spinner' while running your long shell commands +# +# Do *NOT* call _spinner function directly. +# Use {start,stop}_spinner wrapper functions + +# usage: +# 1. source this script in your's +# 2. start the spinner: +# start_spinner [display-message-here] +# 3. run your command +# 4. stop the spinner: +# stop_spinner [your command's exit status] +# +# Also see: test.sh + + +function _spinner() { + # $1 start/stop + # + # on start: $2 display message + # on stop : $2 process exit status + # $3 spinner function pid (supplied from stop_spinner) + + local on_success="DONE" + local on_fail="FAIL" + local white="\e[1;37m" + local green="\e[1;32m" + local red="\e[1;31m" + local nc="\e[0m" + + case $1 in + start) + # calculate the column where spinner and status msg will be displayed + let column=$(tput cols)-${#2}-8 + # display message and position the cursor in $column column + echo -ne ${2} + printf "%${column}s" + + # start spinner + i=1 + sp='\|/-' + delay=${SPINNER_DELAY:-0.15} + + while : + do + printf "\b${sp:i++%${#sp}:1}" + sleep $delay + done + ;; + stop) + if [[ -z ${3} ]]; then + echo "spinner is not running.." + exit 1 + fi + + kill $3 > /dev/null 2>&1 + + # inform the user uppon success or failure + echo -en "\b[" + if [[ $2 -eq 0 ]]; then + echo -en "${green}${on_success}${nc}" + else + echo -en "${red}${on_fail}${nc}" + fi + echo -e "]" + ;; + *) + echo "invalid argument, try {start/stop}" + exit 1 + ;; + esac +} + +function start_spinner { + # $1 : msg to display + _spinner "start" "${1}" & + # set global spinner pid + _sp_pid=$! + disown +} + +function stop_spinner { + # $1 : command exit status + _spinner "stop" $1 $_sp_pid + unset _sp_pid +} + diff --git a/ghost/content.tar.gz b/ghost/content.tar.gz new file mode 100644 index 0000000..896b542 Binary files /dev/null and b/ghost/content.tar.gz differ diff --git a/ghost/restore-backup.sh b/ghost/restore-backup.sh new file mode 100644 index 0000000..385c08f --- /dev/null +++ b/ghost/restore-backup.sh @@ -0,0 +1,37 @@ +#Dependencies +source "./.dependencies/spinner.sh" + +#-------CONFIGURATION-------# +URL="blog.noobtoroot.xyz" +ARCHIVE_NAME="content.tar.gz" +CONTENTBACKUP_PATH="./tmp" +IMAGE_FOLDER=NULL +#--------------------------# + +#docker run -d --name $URL -p 3001:2368 -e url=https://$URL ghost:latest + +#CHECK IF ARCHIVE EXIST +if ! [[ -f "$ARCHIVE_NAME" ]]; then + echo "ARCHIVE BACKUP IS MISSING" + exit +fi + +start_spinner "EXTRACT AND COPY CONTENT FILES IN DOCKER CONTAINER" +#-----------------------------------------------------------------# +#EXTRACT +mkdir -p $CONTENTBACKUP_PATH +tar -zxf $ARCHIVE_NAME -C $CONTENTBACKUP_PATH > /dev/null 2>&1 + +#FIND IMAGES FOLDER +IMAGE_FOLDER=$(find ./ -type d -wholename "*content/images") + +#EXTRACT TO DOCKER CONTAINER +docker cp -L "$IMAGE_FOLDER" $URL:/var/lib/ghost/content/ + +#REMOVE TMP CONTENT BACKUP FILES +rm -dR $CONTENTBACKUP_PATH +#----------------------------------------------------------------# +stop_spinner $? + + +