Bertrand Janvoie
3 years ago
4 changed files with 132 additions and 0 deletions
@ -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 |
||||||
|
} |
||||||
|
|
Binary file not shown.
@ -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 $? |
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue