|
@@ -1,5 +1,5 @@
|
|
#!/bin/bash
|
|
#!/bin/bash
|
|
-Version=2.4
|
|
|
|
|
|
+Version=2.5
|
|
function print_centered {
|
|
function print_centered {
|
|
[[ $# == 0 ]] && return 1
|
|
[[ $# == 0 ]] && return 1
|
|
|
|
|
|
@@ -23,7 +23,16 @@ function print_centered {
|
|
|
|
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
+# function to set terminal title
|
|
|
|
+function set-title() {
|
|
|
|
+ if [[ -z "$ORIG" ]]; then
|
|
|
|
+ ORIG=$PS1
|
|
|
|
+ fi
|
|
|
|
+ TITLE="\[\e]2;$*\a\]"
|
|
|
|
+ PS1=${ORIG}${TITLE}
|
|
|
|
+}
|
|
|
|
|
|
|
|
+function intro_ {
|
|
print_centered "$(tput setaf 3)"
|
|
print_centered "$(tput setaf 3)"
|
|
print_centered " _____ __ ";
|
|
print_centered " _____ __ ";
|
|
print_centered " / ___/__ ____/ / ___ _______ _";
|
|
print_centered " / ___/__ ____/ / ___ _______ _";
|
|
@@ -34,43 +43,61 @@ echo -n "$(tput setaf 7)"
|
|
print_centered "Gerbera UPNP installation script v$Version"
|
|
print_centered "Gerbera UPNP installation script v$Version"
|
|
echo ""
|
|
echo ""
|
|
sleep 3
|
|
sleep 3
|
|
-#sudo apt-get update
|
|
|
|
-#sudo apt-get install uuid-dev libsqlite3-dev libmysqlclient-dev libmagic-dev libexif-dev libcurl4-openssl-dev libspdlog-dev libpugixml-dev -y
|
|
|
|
-#sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev libavdevice-dev libavfilter-dev libavresample-dev libswscale-dev libswresample-dev libpostproc-dev -y
|
|
|
|
-#sudo apt-get install libebml-dev ffmpeg ffmpegthumbnailer libffmpegthumbnailer-dev imagemagick fmtools libfmt-dev libmatroska-dev -y
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function update_ {
|
|
|
|
+echo -e "$(tput setaf 10)\nUpdate/install packages:$(tput sgr0)"
|
|
|
|
+sudo apt-get update
|
|
|
|
+sudo apt-get install uuid-dev libsqlite3-dev libmysqlclient-dev libmagic-dev libexif-dev libcurl4-openssl-dev libspdlog-dev libpugixml-dev \
|
|
|
|
+libavutil-dev libavcodec-dev libavformat-dev libavdevice-dev libavfilter-dev libavresample-dev libswscale-dev libswresample-dev libpostproc-dev \
|
|
|
|
+libebml-dev ffmpeg ffmpegthumbnailer libffmpegthumbnailer-dev imagemagick fmtools libfmt-dev libmatroska-dev -y
|
|
echo -e ""
|
|
echo -e ""
|
|
|
|
+}
|
|
|
|
|
|
-cmake_v="$(cmake --version | grep "version" | awk '{print $3}')"
|
|
|
|
function version {
|
|
function version {
|
|
echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
|
|
echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
|
|
}
|
|
}
|
|
-if ! [ $(version $cmake_v) -ge $(version "3.18") ]
|
|
|
|
-then
|
|
|
|
-echo -e "Cmake update:"
|
|
|
|
-version=3.21
|
|
|
|
-build=4
|
|
|
|
-mkdir ~/temp
|
|
|
|
-cd ~/temp
|
|
|
|
-sudo apt-get remove --purge cmake -y
|
|
|
|
-wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
|
|
|
|
-tar -xzvf cmake-$version.$build.tar.gz
|
|
|
|
-cd cmake-$version.$build/
|
|
|
|
-./bootstrap
|
|
|
|
-./configure
|
|
|
|
-make -j$(nproc)
|
|
|
|
-sudo make install
|
|
|
|
-rm -r -f ~/temp
|
|
|
|
-else
|
|
|
|
-echo -e "Cmake version O.K\n"
|
|
|
|
-fi
|
|
|
|
|
|
+
|
|
|
|
+function cmake_ {
|
|
|
|
+echo -e "$(tput setaf 10)\nInstall cmake:$(tput sgr0)"
|
|
|
|
+if [ -x "$(command -v cmake)" ];then flag=1; else flag=0;fi
|
|
|
|
+case $flag in
|
|
|
|
+0)
|
|
|
|
+ wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ sudo dpkg -i cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ rm cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ ;;
|
|
|
|
+1)
|
|
|
|
+ cmake_v="$(cmake --version | grep "version" | awk '{print $3}')"
|
|
|
|
+ echo "cmake version : $cmake_v"
|
|
|
|
+ sleep 2
|
|
|
|
+ if ! [ $(version $cmake_v) -ge $(version "3.18") ]
|
|
|
|
+ then
|
|
|
|
+ echo -e "cmake need update=>"
|
|
|
|
+ sudo apt-get -qq remove --purge cmake -y
|
|
|
|
+ wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ sudo dpkg -i cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ rm cmake_3.25.0-custom-1_amd64.deb
|
|
|
|
+ else
|
|
|
|
+ echo -e "cmake version ok."
|
|
|
|
+ sleep 2
|
|
|
|
+ fi
|
|
|
|
+ ;;
|
|
|
|
+*) echo "Error";;
|
|
|
|
+esac
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function build_ {
|
|
|
|
+echo -e "$(tput setaf 10)\nBuild Gerbera:$(tput sgr0)"
|
|
|
|
|
|
cd ~/Build_Cube/options
|
|
cd ~/Build_Cube/options
|
|
if [ ! -d gerbera ]
|
|
if [ ! -d gerbera ]
|
|
then
|
|
then
|
|
#git clone https://github.com/gerbera/gerbera.git
|
|
#git clone https://github.com/gerbera/gerbera.git
|
|
-wget -c http://folivier.homelinux.org/cube/pack/gerbera-1.12.1.tar.xz
|
|
|
|
|
|
+wget -c -q --show-progress http://folivier.homelinux.org/cube/pack/gerbera-1.12.1.tar.xz
|
|
tar xvfJ gerbera-1.12.1.tar.xz
|
|
tar xvfJ gerbera-1.12.1.tar.xz
|
|
mv gerbera-1.12.1 gerbera
|
|
mv gerbera-1.12.1 gerbera
|
|
|
|
+rm xvfJ gerbera-1.12.1.tar.xz
|
|
fi
|
|
fi
|
|
|
|
|
|
cd ~/Build_Cube/options/gerbera/scripts
|
|
cd ~/Build_Cube/options/gerbera/scripts
|
|
@@ -101,48 +128,54 @@ wget -c http://folivier.homelinux.org/cube/pack/gerbera.tar.xz
|
|
tar xvfJ gerbera.tar.xz
|
|
tar xvfJ gerbera.tar.xz
|
|
rm gerbera.tar.xz
|
|
rm gerbera.tar.xz
|
|
|
|
|
|
-
|
|
|
|
echo -e "\n\e[97mEnd of process...\e[0m"
|
|
echo -e "\n\e[97mEnd of process...\e[0m"
|
|
|
|
+}
|
|
|
|
|
|
function service_ {
|
|
function service_ {
|
|
cd /home/wareck
|
|
cd /home/wareck
|
|
if [ -f gerbera.service ];then rm gerbera.service;fi
|
|
if [ -f gerbera.service ];then rm gerbera.service;fi
|
|
cat <<'EOF'>> gerbera.service
|
|
cat <<'EOF'>> gerbera.service
|
|
-[Unit]
|
|
|
|
-Description=Gerbera Media Server
|
|
|
|
-After=network.target
|
|
|
|
-
|
|
|
|
-[Service]
|
|
|
|
-Type=simple
|
|
|
|
-User=gerbera
|
|
|
|
-Group=gerbera
|
|
|
|
-ExecStart=/usr/local/bin/gerbera
|
|
|
|
-Restart=on-failure
|
|
|
|
-RestartSec=5
|
|
|
|
-
|
|
|
|
-[Install]
|
|
|
|
|
|
+#!/bin/sh -e
|
|
|
|
+### BEGIN INIT INFO
|
|
|
|
+# Provides: gerbera
|
|
|
|
+# Required-Start: networking
|
|
|
|
+# Default-Start: 3 4 5
|
|
|
|
+# Default-Stop: 0 6
|
|
|
|
+### END INIT INFO
|
|
|
|
+case "$1" in
|
|
|
|
+ start)
|
|
|
|
+ su wareck -c "screen -dmS gerbera /usr/local/bin/gerbera"
|
|
|
|
+ ;;
|
|
|
|
+ stop)
|
|
|
|
+ sudo killall -9 gerbera | true
|
|
|
|
+ ;;
|
|
|
|
+ *)
|
|
|
|
+ echo "Usage: /etc/init.d/gerbera.service {start|stop}"
|
|
|
|
+ exit 1
|
|
|
|
+ ;;
|
|
|
|
+esac
|
|
|
|
+
|
|
|
|
+exit 0
|
|
EOF
|
|
EOF
|
|
chmod +x gerbera.service
|
|
chmod +x gerbera.service
|
|
-sudo cp gerbera.service /lib/systemd/system/
|
|
|
|
-sudo useradd --system gerbera
|
|
|
|
-sudo mkdir /etc/gerbera
|
|
|
|
-sudo mkdir /home/gerbera/
|
|
|
|
-sudo mkdir /home/gerbera/.config/
|
|
|
|
-sudo mkdir /home/gerbera/.config/gerbera
|
|
|
|
-sudo chown -Rv gerbera:gerbera /etc/gerbera
|
|
|
|
-sudo cp /home/wareck/.config/gerbera/config.xml /home/gerbera/.config/gerbera/
|
|
|
|
-sudo systemctl daemon-reload
|
|
|
|
-sudo systemctl start gerbera.service
|
|
|
|
-rm gerbera.service
|
|
|
|
-echo -e "\n\e[97mEnd of process...\e[0m"
|
|
|
|
|
|
+sudo cp /home/wareck/gerbera.service /etc/init.d/
|
|
|
|
+sudo update-rc.d gerbera.service defaults
|
|
|
|
+sudo rm /home/wareck/gerbera.service
|
|
|
|
+echo "Done"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+intro_
|
|
|
|
+update_
|
|
|
|
+cmake_
|
|
|
|
+build_
|
|
|
|
+
|
|
|
|
+echo -e "$(tput setaf 10)\nService optional :$(tput sgr0)"
|
|
|
|
+
|
|
while true; do
|
|
while true; do
|
|
read -p "Do you want to install service (y/n) ? " yn
|
|
read -p "Do you want to install service (y/n) ? " yn
|
|
|
|
|
|
case $yn in
|
|
case $yn in
|
|
- [Yy] ) echo ok, we will proceed;
|
|
|
|
- service_ ;
|
|
|
|
|
|
+ [Yy] ) service_ ;
|
|
exit 1;;
|
|
exit 1;;
|
|
[Nn] ) echo exiting...;
|
|
[Nn] ) echo exiting...;
|
|
exit;;
|
|
exit;;
|