#!/usr/bin/env bash
set -e
RELEASE = $( curl -s https://api.github.com/repos/photoprism/photoprism/releases/latest |
grep "tag_name" |
awk '{print substr($2, 2, length($2)-4) }' )
YW = $( echo "\033[33m" )
BL = $( echo "\033[36m" )
RD = $( echo "\033[01;31m" )
CM = '\xE2\x9C\x94\033'
GN = $( echo "\033[1;92m" )
CL = $( echo "\033[m" )
PP = $( echo "\e[1;35m" )
while true; do
read -p "Update PhotoPrism LXC. Proceed(y/n)?" yn
case $yn in
[ Yy] *) break ; ;
[ Nn] *) exit ; ;
*) echo "Please answer yes or no." ; ;
esac
done
clear
function header_info {
echo -e " ${ PP }
_____ _ _ _____ _
| __ \| | | | | __ \ ( _)
| | __) | | __ ___ | | _ ___ | | __) | __ _ ___ _ __ ___
| ___/| _ \ / _ \| __/ _ \| ___/ __| / __| _ _ \
| | | | | | ( _) | || ( _) | | | | | \_ _ \ | | | | |
| _| | _| | _| \_ __/ \_ _\_ __/| _| | _| | _| ___/_| | _| | _|
${ RD } UPDATE
${ CL } "
}
header_info
show_menu( ) {
printf " ${ YW } 1) ${ GN } Release Branch ${ CL } \n "
printf " ${ YW } 2) ${ YW } Develop Branch ${ CL } \n "
printf " Please choose a Install Branch and hit enter or ${ RD } x ${ CL } to exit. "
read opt
}
option_picked( ) {
message1 = ${ @ :- " ${ CL } Error: No message passed " }
printf " ${ YW } ${ message1 } ${ CL } \n "
}
show_menu
while [ " $opt " != " " ] ; do
case $opt in
1)
clear
header_info
option_picked "Using Release Branch"
BR = "release"
break
; ;
2)
clear
header_info
option_picked "Using Develop Branch"
BR = "develop"
break
; ;
x)
exit
; ;
\n )
exit
; ;
*)
clear
option_picked "Please choose a Install Branch from the menu"
show_menu
; ;
esac
done
echo -en " ${ GN } Stopping PhotoPrism... "
sudo systemctl stop photoprism
echo -e " ${ CM } ${ CL } \r "
echo -en " ${ GN } Cloning PhotoPrism ${ BR } branch... "
git clone https://github.com/photoprism/photoprism.git & >/dev/null
cd photoprism
git checkout ${ BR } & >/dev/null
echo -e " ${ CM } ${ CL } \r "
echo -en " ${ GN } Building PhotoPrism ${ BR } branch... "
sudo make all & >/dev/null
sudo ./scripts/build.sh prod /opt/photoprism/bin/photoprism & >/dev/null
sudo cp -a assets/ /opt/photoprism/assets/ & >/dev/null
echo -e " ${ CM } ${ CL } \r "
echo -en " ${ GN } Cleaning... "
cd ~
rm -rf photoprism
echo -e " ${ CM } ${ CL } \r "
echo -en " ${ GN } Starting PhotoPrism... "
sudo systemctl start photoprism
echo -e " ${ CM } ${ CL } \n "
echo -e " ${ GN } Finished ${ CL } \n "