|
|
|
@@ -4,6 +4,9 @@
|
|
|
|
|
#
|
|
|
|
|
# Sofwareinstallation script for Nextcloud Desktop
|
|
|
|
|
#
|
|
|
|
|
# Hint: No check for installed Nextcloud needed, because it will be installed by calling script sync_client_software.sh
|
|
|
|
|
# before as it is needed there already
|
|
|
|
|
|
|
|
|
|
echo "Setup Nextcloud- Sync"
|
|
|
|
|
|
|
|
|
|
#Local Vars
|
|
|
|
@@ -93,7 +96,9 @@ for i in {0..99}; do
|
|
|
|
|
echo "Please check the above output!"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
# The Flatpak autoprovisioning may not successfully write the apppassword to
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# The Flatpak autoprovisioning may not successfully write the apppassword to
|
|
|
|
|
# KWallet from inside the sandbox, so write it directly via D-Bus.
|
|
|
|
|
# Nextcloud stores HTTP credentials in folder "Nextcloud" with keys:
|
|
|
|
|
# user:url/:0 (legacy password entry)
|
|
|
|
@@ -110,18 +115,24 @@ for i in {0..99}; do
|
|
|
|
|
if ! ( ${NC_QB_CMD} "${NC_QB_SVC}" | grep -q "${NC_QB_PATH}" ); then
|
|
|
|
|
NC_QB_PATH="/modules/kwalletd5"
|
|
|
|
|
fi
|
|
|
|
|
echo "Writing Nextcloud app password to KWallet via D-Bus (${NC_QB_PATH})"
|
|
|
|
|
echo "Checking Nextcloud app password in KWallet via D-Bus (${NC_QB_PATH})"
|
|
|
|
|
NC_WALLET_HANDLE=$(${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.open "kdewallet" 0 "${NC_WALLET_APPID}")
|
|
|
|
|
if [[ -n "${NC_WALLET_HANDLE}" && "${NC_WALLET_HANDLE}" != "-1" ]]; then
|
|
|
|
|
HAS_FOLDER=$(${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.hasFolder "${NC_WALLET_HANDLE}" "Nextcloud" "${NC_WALLET_APPID}")
|
|
|
|
|
if [[ "${HAS_FOLDER}" != "true" ]]; then
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.createFolder "${NC_WALLET_HANDLE}" "Nextcloud" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
fi
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.writePassword "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}:${NC_WALLET_URL}:0" "${DAVTOKEN_PASS}" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.writePassword "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}_app-password:${NC_WALLET_URL}:0" "${DAVTOKEN_PASS}" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
HAS_PW1=$(${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.hasEntry "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}:${NC_WALLET_URL}:0" "${NC_WALLET_APPID}")
|
|
|
|
|
HAS_PW2=$(${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.hasEntry "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}_app-password:${NC_WALLET_URL}:0" "${NC_WALLET_APPID}")
|
|
|
|
|
if [[ "${HAS_PW1}" == "true" && "${HAS_PW2}" == "true" ]]; then
|
|
|
|
|
echo "Nextcloud app password already present in KWallet — no change needed."
|
|
|
|
|
else
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.writePassword "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}:${NC_WALLET_URL}:0" "${DAVTOKEN_PASS}" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.writePassword "${NC_WALLET_HANDLE}" "Nextcloud" "${DAVTOKEN_USER}_app-password:${NC_WALLET_URL}:0" "${DAVTOKEN_PASS}" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
echo "Nextcloud app password written to KWallet successfully."
|
|
|
|
|
fi
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.sync "${NC_WALLET_HANDLE}" "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
${NC_QB_CMD} ${NC_QB_SVC} ${NC_QB_PATH} org.kde.KWallet.close "${NC_WALLET_HANDLE}" false "${NC_WALLET_APPID}" >/dev/null
|
|
|
|
|
echo "Nextcloud app password written to KWallet successfully."
|
|
|
|
|
else
|
|
|
|
|
echo "Warning: Could not open KWallet (handle: ${NC_WALLET_HANDLE}). Nextcloud may prompt for credentials on next start."
|
|
|
|
|
fi
|
|
|
|
@@ -129,32 +140,7 @@ for i in {0..99}; do
|
|
|
|
|
echo "KWallet not available (non-KDE desktop) — skipping credential storage."
|
|
|
|
|
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
|
|
|
|
|
echo "Starting Nextcloud Client in Background"
|
|
|
|
|
systemd-run --user --no-block --unit=nextcloud-client.service --setenv=SESSION_MANAGER= ${BASECMD} >>${TEMPDIR}/nc_desktop_client.log 2>&1
|
|
|
|
|