forked from obel1x/fedora-OEMDRV
75 lines
2.7 KiB
Bash
Executable File
75 lines
2.7 KiB
Bash
Executable File
#!/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 $(dirname "$0")/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}
|
|
|
|
#Install or update Nextcloud com.nextcloud.desktopclient.nextcloud
|
|
echo "Update or install Nextcloud client"
|
|
/usr/bin/flatpak install -y --or-update --noninteractive flathub com.nextcloud.desktopclient.nextcloud && echo "Done Update/Install of Nextcloud."
|
|
|
|
#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
|