Skip to content
Snippets Groups Projects
Commit f97b317e authored by efalcy's avatar efalcy
Browse files

dev#142668 : merge scripts in one file

parent 85315221
No related merge requests found
Pipeline #15296 passed with stage
in 26 minutes and 5 seconds
- ticket #142668 : Administration : ajout d'un script permettant une mise à jour casi instantanée de la charte graphique
\ No newline at end of file
#/bin/bash
LOGFILE="/tmp/logupdate"
# echo "Delete old skins_clone_log.json.lock"
for filename in `find ./temp/ -name "skins_clone_log.json.lock" -mmin +15 |xargs -n1`
do
rm $filename
done
if [ -e './temp/skins_clone_log.json.lock' ]; then
echo "can't do anything , skins_clone_log.json.lock exists"
exit
fi
function gitclone() {
local skin=$1
local filename=$2
local url=`jq -rC ".[\"${skin}\"].url|@sh" $filename".lock"`
echo `pwd`
echo "git clone ${url} ${skin}"
cd "skins/" && \
git clone ${url} ${skin} > $LOGFILE 2>&1
cd -
updateFile $skin $filename 'action' "done"
updateFile $skin $filename 'log' "`cat ${LOGFILE}`"
}
function updateFile() {
local skin=$1
local filename=$2
local key=$3
local value=$4
local lockfile=$filename".lock"
local donefile=$filename".done"
jq ".[\"${skin}\"].${key}=\"${value}\"" $lockfile >$donefile
cp $donefile $lockfile
}
function writeUpdateLog() {
local skin=$1
local filename=$2
local mydate=$(date +%D' '%T)
updateFile $skin $filename 'Status' "Mis a jour le ${mydate}"
}
function shouldUpdateSkin() {
local skin=$1
local filename=$2
jq -rC ".[\"${skin}\"].action == \"update\" |@sh" $filename".lock"
}
for filename in `find ./temp/ -name "skins_clone_log.json" |xargs -n1`
do
mv $filename $filename".lock"
jq -Cr '.[].skin' $filename".lock" |
while read -r skin ; do \
output=$(shouldUpdateSkin $skin $filename)
if [ $output == 'false' ]; then \
continue
fi
writeUpdateLog $skin $filename
gitclone $skin $filename
done
if [ -e $filename".done" ]; then
rm $filename".lock"
else
mv $filename".lock" $filename".done"
fi
done
#/bin/bash
LOGFILE="/tmp/logupdate"
## Update or clone git skin
## Usage: bash update_skins.sh update|clone|clean
# echo "Delete old skins_update_log.json.lock"
for filename in `find ./temp/ -name "skins_update_log.json.lock" -mmin +15 |xargs -n1`
do
rm $filename
done
if [ -e './temp/skins_update_log.json.lock' ]; then
echo "can't do anything , skins_update_log.json.lock exists"
exit
usage='Usage: bash update_skins.sh update|clone'
if [ $# -lt 1 ]; then
printf "$0: not enough arguments\n%s\n" "$usage" >&2
exit 2
fi
# echo "Delete old skins_update_log.json.lock"
function gitpull() {
local skin=$1
......@@ -24,6 +23,21 @@ function gitpull() {
updateFile $skin $filename 'log' "`cat ${LOGFILE}`"
}
function gitclone() {
local skin=$1
local filename=$2
local url=`jq -rC ".[\"${skin}\"].url|@sh" $filename".lock"`
echo `pwd`
echo "git clone ${url} ${skin}"
cd "skins/" && \
git clone ${url} ${skin} > $LOGFILE 2>&1
cd -
updateFile $skin $filename 'action' "done"
updateFile $skin $filename 'log' "`cat ${LOGFILE}`"
}
function updateFile() {
local skin=$1
local filename=$2
......@@ -35,6 +49,7 @@ function updateFile() {
cp $donefile $lockfile
}
function shouldUpdateSkin() {
local skin=$1
local filename=$2
......@@ -49,25 +64,97 @@ function writeUpdateLog() {
updateFile $skin $filename 'Status' "Mis a jour le ${mydate}"
}
for filename in `find ./temp/ -name "skins_update_log.json" |xargs -n1`
do
mv $filename $filename".lock"
jq -Cr '.[].skin' $filename".lock" |
while read -r skin; do \
output=$(shouldUpdateSkin $skin $filename)
if [ $output != 'true' ]; then
continue
fi
function skinsUpdate() {
for filename in `find ./temp/ -name "skins_update_log.json.lock" -mmin +15 |xargs -n1`
do
rm $filename
done
if [ -e './temp/skins_update_log.json.lock' ]; then
echo "can't do anything , skins_update_log.json.lock exists"
exit
fi
for filename in `find ./temp/ -name "skins_update_log.json" |xargs -n1`
do
mv $filename $filename".lock"
jq -Cr '.[].skin' $filename".lock" |
while read -r skin; do \
output=$(shouldUpdateSkin $skin $filename)
if [ $output != 'true' ]; then
continue
fi
writeUpdateLog $skin $filename
gitpull $skin $filename
done
if [ -e $filename".done" ]; then
rm $filename".lock"
else
mv $filename".lock" $filename".done"
fi
done
}
function skinsClone(){
for filename in `find ./temp/ -name "skins_clone_log.json.lock" -mmin +15 |xargs -n1`
do
rm $filename
done
if [ -e './temp/skins_clone_log.json.lock' ]; then
echo "can't do anything , skins_clone_log.json.lock exists"
exit
fi
for filename in `find ./temp/ -name "skins_clone_log.json" |xargs -n1`
do
mv $filename $filename".lock"
jq -Cr '.[].skin' $filename".lock" |
while read -r skin ; do \
output=$(shouldUpdateSkin $skin $filename)
if [ $output == 'false' ]; then \
continue
fi
writeUpdateLog $skin $filename
gitclone $skin $filename
done
if [ -e $filename".done" ]; then
rm $filename".lock"
else
mv $filename".lock" $filename".done"
fi
writeUpdateLog $skin $filename
gitpull $skin $filename
done
done
}
if [ $1 == 'update' ]; then
skinsUpdate
fi
if [ $1 == 'clean' ]; then
if [ -e $filename".done" ]; then
rm $filename".done"
fi
if [ -e $filename".lock" ]; then
rm $filename".lock"
else
mv $filename".lock" $filename".done"
fi
fi
if [ $1 == 'clone' ]; then
skinsClone
fi
done
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment