diff --git a/seqs/kodi.sh b/seqs/kodi.sh index 515b68a..8c3eb44 100644 --- a/seqs/kodi.sh +++ b/seqs/kodi.sh @@ -8,31 +8,31 @@ toolName="Kodi" toolUser="kodi" toolServiceFile="/etc/systemd/system/kodi.service" -step_1_info() { echo "Installing $toolName via apt"; } +step_1_info() { echo "Install $toolName via apt"; } step_1_alias() { ALIAS="install"; } step_1() { - apt update && apt install kodi + exe apt update && apt install kodi } step_2_info() { echo "Set localisation and keyboard layout"; } step_2() { echo "Goto \"Localisation Options\" in the following menu." read -p "Press ENTER to continue..." - raspi-config + exe raspi-config saveReturn $? endReturn } -step_3_info() { echo "Adding $toolName user ($toolUser)"; } +step_3_info() { echo "Add $toolName user ($toolUser)"; } step_3() { - id -u $toolUser >>/dev/null 2>&1 + exe id -u $toolUser >>/dev/null 2>&1 if [ $? -eq 0 ] ; then echo echo "User $toolUser exists." echo "Skipping user creation." return 0 fi - adduser \ + exe adduser \ --disable-password \ --gecos "User to run $toolName Media Center" \ -G audio,video,plugdev,input,tty \ @@ -40,22 +40,22 @@ step_3() { saveReturn $? endReturn echo "User $toolUser details:" - id $tooLuser + exe id $tooLuser } step_4_info() { echo "Create systemd service"; } step_4() { - if [ -f "$toolServiceFile" ] ; then - mv "$toolServiceFile" "$toolServiceFile".bck - echo -e "\n[WARN] existing service file renamed to $toolServiceFile.bck" - fi - echo "$toolServiceContent" > "$toolServiceFile" + addConf "$toolServiceContent" "$toolServiceFile" - systemctl daemon reload - systemctl enable kodi.service - saveReturn $? - endReturn + if [ $? -eq 0 ] ; then + exe systemctl daemon reload + exe systemctl enable kodi.service + saveReturn $? + endReturn + else + echo "[ERROR] failed to setup systemd service" + fi } toolServiceContent="\ @@ -80,25 +80,33 @@ RestartSec = 15 [Install] WantedBy = multi-user.target" -step_5_info() { echo "Enabling text input for USB keyboards within $toolName"; } +step_5_info() { echo "Enable text input for USB keyboards within $toolName"; } step_5() { local udevFile="/etc/udev/rules.d/99-kodi.rules" local inputRule="KERNEL==\"tty[0-9]*\", GROUP=\"tty\", MODE=\"0660\"" - if [ -f "$udevFile" ] ; then - echo "udev rule ($udevFile) already exists." + + addConf "$inputRule" "$udevFile" +} + +step_6_info() { echo "Increase raspberry pi GPU memory to 320"; } +step_6() { + exe grep -e '^[ ]*gpu_mem' "$bootConfigLoc" >>/dev/null 2>&1 + if [ -f "$bootConfigLoc" ] && [ $? -ne 0 ] ; then + # attach settings to raspberry boot configuration + exe mount -o remount,rw /boot + echo -n "Modifying boot configuration ... " + echo "$bootConfig" >> "$bootConfigLoc" && echo "ok" + exe mount -o remount,ro /boot else - echo "inputRule" >> udevFile + echo "[ERROR] modifying boot configuration. Kodi may not work properly" fi } -step_6_info() { "Increase raspberry pi GPU memory to 320"; } -step_6() { - local rpiBootConfig="/boot/config.txt" - echo " - # Modifications for $toolName - start_x=1 - gpu_mem=320" >> $rpiBootConfig -} +bootConfigLoc="/boot/config.txt" +bootConfig=" +# Modifications for $toolName +start_x=1 +gpu_mem=320" step_7_info() { echo "Reboot is needed for all changes to take effect"; } step_7() { @@ -113,7 +121,7 @@ step_7() { ;; *) echo - echo "To start $toolName anyway enter:" + echo "Start $toolName manually:" echo "service start kodi" ;; esac