#!/bin/sh # SPDX-FileCopyrightText: Daniel Pätzold # SPDX-License-Identifier: AGPL-3.0-or-later # # Central sofwareinstallation script. Should be called from logon-script via sudo and prereserved env # source ./setup_system.conf source ./setup_system.inc.sh #Check for root if [ "$EUID" -ne 0 ]; then echo "Error: Script requires root privileges. It should be executed via logon-script and not standalone." exit 1 fi #Check Token if [ "${DAVTOKEN_USER}." == "." ]; then echo "Error: Script cannot be executed standalone and needs a prereserved environement from logon-script." echo "To get executed without password prompt, use the NOPASSWD rule in sudo. In FreeIPA you can use the sudo-option !authenticate in the sudo rule." echo "Additionally add the sudo command to the rule: ^\/sys_config\/system_setup\/sync_client_software\.sh.*$" exit 1 fi #Check if Repository is defined if [ "${CLIENT_SOFTWARE_DST}." == "." ]; then echo "No central softwarerepository defined (CLIENT_SOFTWARE_DST). Skipping sync." exit 0 fi echo "Syncing central softwarerepository ${CLIENT_SOFTWARE_DST}" # Create Directory if not existent if [ ! -d ${CLIENT_SOFTWARE_DST} ]; then mkdir ${CLIENT_SOFTWARE_DST} fi #Logs for systems software-repository go to roots log files LOGFILE="${TEMPDIR}/${SCRIPTNAME}.log" echo "Logging to File ${LOGFILE}" mkdir -p ${TEMPDIR} #Sync Files SYNCCMD="sudo -i /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=nextcloudcmd com.nextcloud.desktopclient.nextcloud -h -u ${DAVTOKEN_USER} -p ${DAVTOKEN_PASS} --path ${CLIENT_SOFTWARE_SRC} ${CLIENT_SOFTWARE_DST} https://${SERVERFQDN_NC}" SYNCCMD_HIDDENPW=$( echo "${SYNCCMD/${DAVTOKEN_PASS}/***HIDDEN***}" ) echo "Exec: ${SYNCCMD_HIDDENPW}" echo "Sync Client Software" > ${LOGFILE} echo "====================" >> ${LOGFILE} date >> ${LOGFILE} echo ${SYNCCMD_HIDDENPW} >> ${LOGFILE} echo "" >> ${LOGFILE} ${SYNCCMD} >> ${LOGFILE} 2>&1 if [[ $? -ne 0 ]]; then echo "Error in sync:" echo "****" cat ${LOGFILE} echo "****" echo "" echo "Please check if your Token is setup right and for the above Output" read -n 1 -s -r -p "Press any key to continue" echo "" exit 1 fi #Files must be owned by root chown root:root -R ${CLIENT_SOFTWARE_DST} chmod u+rw,go-rwx -R ${CLIENT_SOFTWARE_DST} if [ -f "${CLIENT_SOFTWARE_DST}/install.sh" ]; then chmod u+x "${CLIENT_SOFTWARE_DST}/install.sh" fi echo "Sucessfully synced." if [ $1 == "install" ]; then ${CLIENT_SOFTWARE_DST}/install.sh fi