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