Compare commits
2 Commits
7930263a3b
...
b35a5148a3
| Author | SHA1 | Date | |
|---|---|---|---|
| b35a5148a3 | |||
| 772f20e1ce |
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
# SPDX-FileCopyrightText: Daniel Pätzold
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#
|
||||
# Sofwareinstallation script for Nextcloud Desktop
|
||||
#
|
||||
echo "Setup Nextcloud- Sync"
|
||||
|
||||
#Check for root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Error: Script requires root. Please check if ${SCRIPTPATH}/${SCRIPTNAME} is in sudoers rules and if you are a member. And if executed via sudo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Check Token
|
||||
if [ "${DAVTOKEN_USER}." == "." ]; then
|
||||
echo "Error: Script cannot be executed standalone and needs a prereserved Environment. Quit."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Check if Option is Configured to use Nextcloud Desktop Data- Sync
|
||||
if [ "${CLIENT_DATA_DST}." == "." ]; then
|
||||
echo "CLIENT_DATA_DST not set, skipping setup of Nextcloud Desktop sync of Data-Directory"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#Local Vars
|
||||
BASECMD="/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=nextcloud com.nextcloud.desktopclient.nextcloud"
|
||||
SYNCCMD="$BASECMD --userid ${DAVTOKEN_USER} --apppassword ${DAVTOKEN_PASS} --localdirpath ${CLIENT_DATA_DST} --remotedirpath ${CLIENT_DATA_SRC} --serverurl https://${SERVERFQDN_NC}"
|
||||
SYNCCMD_HIDDENPW=$( echo "${SYNCCMD/${DAVTOKEN_PASS}/***HIDDEN***}" )
|
||||
|
||||
#Check if Nextcloud was already setup
|
||||
if grep -q "localPath=${CLIENT_DATA_DST}" "/${SUDO_HOME}/.var/app/com.nextcloud.desktopclient.nextcloud/config/Nextcloud/nextcloud.cfg"; then
|
||||
SETUP_NEEDED="0"
|
||||
else
|
||||
SETUP_NEEDED="1"
|
||||
fi
|
||||
|
||||
#Remove Nextcloud from autostart anyway! Must be started by this script manually, because if it was started befor the ecrypted mount,
|
||||
# it will never sync and always throw an error that the local dir is missing
|
||||
if [ -f "$SUDO_HOME/.config/autostart/com.nextcloud.desktopclient.nextcloud.desktop" ]; then
|
||||
echo "Remove Autostart Nextcloud"
|
||||
rm $SUDO_HOME/.config/autostart/com.nextcloud.desktopclient.nextcloud.desktop
|
||||
#Stopping Nextcloud
|
||||
su -c "$BASECMD --quit 1>/dev/null 2>/dev/null" $SUDO_USER
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [ $SETUP_NEEDED = "0" ]; then
|
||||
echo "Nextcloud was already setup, skipping configure and starting Service"
|
||||
echo "If you want to reset, please delete the Folder [HOME]/.var/app/com.nextcloud.desktopclient.nextcloud manually."
|
||||
echo "Command: rm -rif ~/.var/app/com.nextcloud.desktopclient.nextcloud/"
|
||||
su -c "nohup ${BASECMD} 1>/dev/null 2>/dev/null &" $SUDO_USER
|
||||
exit $?
|
||||
fi
|
||||
|
||||
#No check for installed Nextcloud needed, because it will be installed by calling script sync_client_software.sh
|
||||
|
||||
echo "Syncing Files from remote ${CLIENT_DATA_SRC} to local ${CLIENT_DATA_DST}"
|
||||
if [ -d "${CLIENT_DATA_DST}" ]; then
|
||||
echo "Old unsynced Foler ${CLIENT_DATA_DST} was found, renaming to ${CLIENT_DATA_DST}_bak."
|
||||
mv "${CLIENT_DATA_DST}" "${CLIENT_DATA_DST}_bak"
|
||||
fi
|
||||
su -c "mkdir -p ${CLIENT_DATA_DST}" $SUDO_USER
|
||||
#Cleanup Nextcloud Configuration completely, while otherwise, the configure will not work
|
||||
echo "Remove $SUDO_HOME/.var/app/com.nextcloud.desktopclient.nextcloud"
|
||||
rm -rif "$SUDO_HOME/.var/app/com.nextcloud.desktopclient.nextcloud"
|
||||
|
||||
#echo "Exec as $SUDO_USER: ${SYNCCMD}"
|
||||
echo "Exec as $SUDO_USER: ${SYNCCMD_HIDDENPW}"
|
||||
su -c "${SYNCCMD}" $SUDO_USER
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "=========== !!! ========================"
|
||||
echo "Error: It looks like this did not work!"
|
||||
echo "Please check the above output!"
|
||||
exit 1
|
||||
fi
|
||||
# Now start Nextcloud
|
||||
su -c "nohup ${BASECMD} 1>/dev/null 2>/dev/null &" $SUDO_USER
|
||||
echo "Done Setup of Nextcloud."
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env sh
|
||||
# SPDX-FileCopyrightText: Daniel Pätzold
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#
|
||||
# Sofwareinstallation script for Nextcloud Desktop
|
||||
#
|
||||
echo "Setup Nextcloud- Sync"
|
||||
|
||||
#Local Vars
|
||||
BASECMD="/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=nextcloud com.nextcloud.desktopclient.nextcloud"
|
||||
|
||||
#Check Token
|
||||
if [ "${DAVTOKEN_USER}." == "." ]; then
|
||||
# Todo: Move all task to some function to logon as user and get all vars, call it and proceed here
|
||||
echo "Error: Script cannot be executed standalone and needs a prereserved Environment. Quit."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Remove Nextcloud from autostart anyway! Must be started by this script manually, because if it was started befor the ecrypted mount,
|
||||
#it will never sync and always throw an error that the local dir is missing
|
||||
if [ -f "$SUDO_HOME/.config/autostart/com.nextcloud.desktopclient.nextcloud.desktop" ]; then
|
||||
echo "Remove Autostart Nextcloud"
|
||||
rm $SUDO_HOME/.config/autostart/com.nextcloud.desktopclient.nextcloud.desktop
|
||||
#Stopping Nextcloud
|
||||
su -c "$BASECMD --quit 1>/dev/null 2>/dev/null" $SUDO_USER
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
NC_PID=$( pgrep -u $USER nextcloud )
|
||||
if [[ ! -z ${NC_PID} ]]; then
|
||||
echo "Stopping Nextcloud with PID ${NC_PID}"
|
||||
# $BASECMD --quit 1>/dev/null 2>/dev/null && sleep 5
|
||||
kill ${NC_PID}
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "Service could not be stopped, please check why."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
sleep 0.5
|
||||
|
||||
#Check if Option is Configured to use Nextcloud Desktop Data- Sync
|
||||
declare -p CLIENT_DATA_SYNC_DECLARE >/dev/null
|
||||
eval "${CLIENT_DATA_SYNC_DECLARE}"
|
||||
declare -p CLIENT_DATA_SYNC_DECLARE CLIENT_DATA_SYNC >/dev/null
|
||||
eval "${CLIENT_DATA_SYNC}"
|
||||
if [[ "${#CLIENT_DATA_SYNC[@]}" == "0" ]]; then
|
||||
echo "CLIENT_DATA_SYNC not set, skipping setup of Nextcloud Desktop sync"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#Loop through all Entries
|
||||
for i in {0..99}; do
|
||||
if [[ -z ${CLIENT_DATA_SYNC[$i]} ]]; then
|
||||
break
|
||||
fi
|
||||
CLIENT_DATA_DECLARE_LINE="${CLIENT_DATA_SYNC[$i]}"
|
||||
eval "${CLIENT_DATA_DECLARE_LINE}"
|
||||
# echo "DEBUG user_run.sh(0020)_2: ${CLIENT_DATA_SYNC_LINE[@]}"
|
||||
# Now, CLIENT_DATA_SYNC_LINE[0] contains the local path and CLIENT_DATA_SYNC_LINE[1] contains the remote path
|
||||
if grep -q "localPath=${CLIENT_DATA_SYNC_LINE[0]}" "/${HOME}/.var/app/com.nextcloud.desktopclient.nextcloud/config/Nextcloud/nextcloud.cfg"; then
|
||||
echo "Already found configured local folder ${CLIENT_DATA_SYNC_LINE[0]} syncing with ${CLIENT_DATA_SYNC_LINE[1]} . Leaving it unchanged."
|
||||
else
|
||||
echo "Setup new sync from remote ${CLIENT_DATA_SYNC_LINE[1]} to local ${CLIENT_DATA_SYNC_LINE[0]}"
|
||||
if [[ $i -gt 0 ]]; then
|
||||
echo "Due to Bug in Nextcloud Client, more than one synced Folder cannot be setup currently. Maybe in the Future."
|
||||
continue;
|
||||
fi
|
||||
if [ -d "${CLIENT_DATA_SYNC_LINE[0]}" ]; then
|
||||
echo "Old unsynced Folder ${CLIENT_DATA_SYNC_LINE[0]} was found, renaming to ${CLIENT_DATA_SYNC_LINE[0]}_bak."
|
||||
mv "${CLIENT_DATA_SYNC_LINE[0]}" "${CLIENT_DATA_SYNC_LINE[0]}_bak"
|
||||
fi
|
||||
mkdir -p ${CLIENT_DATA_SYNC_LINE[0]}
|
||||
SYNCCMD="$BASECMD --userid ${DAVTOKEN_USER} --apppassword ${DAVTOKEN_PASS} --localdirpath ${CLIENT_DATA_SYNC_LINE[0]} --remotedirpath ${CLIENT_DATA_SYNC_LINE[1]} --serverurl https://${SERVERFQDN_NC}"
|
||||
SYNCCMD_HIDDENPW=$( echo "${SYNCCMD/${DAVTOKEN_PASS}/***HIDDEN***}" )
|
||||
echo "Exec: ${SYNCCMD_HIDDENPW}"
|
||||
# Due to Bugs in Nextcloud, autoprovisioning will only work when no configuration is existent. Therefore delete any exitsing configs that may be there
|
||||
rm -rif ${HOME}/.var/app/com.nextcloud.desktopclient.nextcloud/data/Nextcloud
|
||||
#Now, execute Nextcloud autoprovisionig
|
||||
${SYNCCMD}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "=========== !!! ========================"
|
||||
echo "Error: It looks like this did not work!"
|
||||
echo "Please check the above output!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
##Check if Nextcloud was already setup
|
||||
#if [ $SETUP_NEEDED = "0" ]; then
|
||||
# echo "Nextcloud was already setup, skipping configure and starting Service"
|
||||
# echo "If you want to reset, please delete the Folder [HOME]/.var/app/com.nextcloud.desktopclient.nextcloud manually."
|
||||
# echo "Command: rm -rif ~/.var/app/com.nextcloud.desktopclient.nextcloud/"
|
||||
# su -c "nohup ${BASECMD} 1>/dev/null 2>/dev/null &" $SUDO_USER
|
||||
# exit $?
|
||||
#fi
|
||||
|
||||
#No check for installed Nextcloud needed, because it will be installed by calling script sync_client_software.sh
|
||||
|
||||
#Cleanup Nextcloud Configuration completely, while otherwise, the configure will not work
|
||||
#echo "Remove $SUDO_HOME/.var/app/com.nextcloud.desktopclient.nextcloud"
|
||||
#rm -rif "$SUDO_HOME/.var/app/com.nextcloud.desktopclient.nextcloud"
|
||||
|
||||
#echo "Exec as $SUDO_USER: ${SYNCCMD}"
|
||||
#echo "Exec as $SUDO_USER: ${SYNCCMD_HIDDENPW}"
|
||||
#su -c "${SYNCCMD}" $SUDO_USER
|
||||
#if [ $? -ne 0 ]; then
|
||||
# echo "=========== !!! ========================"
|
||||
# echo "Error: It looks like this did not work!"
|
||||
# echo "Please check the above output!"
|
||||
# exit 1
|
||||
#fi
|
||||
# Now start Nextcloud
|
||||
nohup ${BASECMD} 1>/dev/null 2>/dev/null &
|
||||
echo "Done Setup of Nextcloud."
|
||||
exit 0
|
||||
@@ -6,4 +6,5 @@ if [[ $? -eq 0 ]]; then
|
||||
fi
|
||||
|
||||
# Start Nextcloud Talk in Background
|
||||
/usr/bin/nohup /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=electron-wrapper --file-forwarding com.nextcloud.talk --background 1>/dev/null 2>&1 &
|
||||
#Current Version of Talk is dumping Core
|
||||
#/usr/bin/nohup /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=electron-wrapper --file-forwarding com.nextcloud.talk --background 1>/dev/null 2>&1 &
|
||||
|
||||
@@ -38,9 +38,23 @@ if [ "$EUID" -ne 0 ]; then
|
||||
#Important Files
|
||||
export DAVTOKENFILENAME="${DECRYPTEDDATADIR}/WEBDAVTOKEN"
|
||||
|
||||
#Path for Documents
|
||||
export CLIENT_DATA_DST="${DECRYPTEDDATADIR}/Dokumente" #Optional
|
||||
export CLIENT_DATA_SRC="/Documents"
|
||||
#Optional: Sync Folders with nextcloud client
|
||||
CLIENT_DATA_SYNC=() # Do not remove
|
||||
|
||||
# If you dont want to use Folder synchronisation: comment out each line starting with CLIENT_DATA_SYNC_LINE= or CLIENT_DATA_SYNC+=
|
||||
#First Sync Folder
|
||||
CLIENT_DATA_SYNC_LINE=("${DECRYPTEDDATADIR}/Dokumente" "/Documents")
|
||||
CLIENT_DATA_SYNC+=("$(declare -p CLIENT_DATA_SYNC_LINE)") # Repeat for each CLIENT_DATA_SYNC_LINE
|
||||
|
||||
#Next Sync Folder
|
||||
CLIENT_DATA_SYNC_LINE=("${DECRYPTEDDATADIR}/Bilder" "/Photos")
|
||||
CLIENT_DATA_SYNC+=("$(declare -p CLIENT_DATA_SYNC_LINE)") # Repeat for each CLIENT_DATA_SYNC_LINE
|
||||
|
||||
#Next Sync Folder
|
||||
#...
|
||||
|
||||
export CLIENT_DATA_SYNC_DECLARE="$(declare -p CLIENT_DATA_SYNC)" # Do not remove
|
||||
#End of Sync Folder for nextcloud client
|
||||
|
||||
#Firefox Profiles of the User
|
||||
export PROFILE_FIREFOX_SRC="mozilla_profiles/firefox"
|
||||
|
||||
Reference in New Issue
Block a user