8652131882
setup_system.inc.sh: replace $(dirname "$0") with $(dirname "${BASH_SOURCE[0]:-$0}") so
paths resolve correctly whether the file is sourced or executed directly. Add --missingconfok
flag to warn-and-continue instead of prompting+aborting when config is missing. Fix machine_uuid
path (missing ../). Move `source config` into the else branch so it is not reached when
missingconfok skips the exit.
install.sh: source inc.sh instead of executing it as a subprocess so exported variables
(REPO_URL etc.) propagate back to the caller. Fix git-origin conflict handling: when reusing
an existing OEMDRV partition the user has already confirmed they want to keep it, so remove
the "fresh clone / wipe" option entirely. Now always pulls (fetch+checkout) when a git repo
is present; clears and fresh-clones only when no git repo exists on the partition.
basic_pre_script.inc: dot-source inc.sh so INSTALLDOCS and other config vars are available.
config.dist, sync_client_software.sh: rename UPGRADEURL/UPGRADEBRANCH to REPO_URL/REPO_BRANCH
to match the variable names already used in install.sh.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
104 lines
4.3 KiB
Plaintext
104 lines
4.3 KiB
Plaintext
# Include for System Settings
|
|
# SPDX-FileCopyrightText: Daniel Pätzold
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
#
|
|
export TLDOMAIN=domain.tld
|
|
export DOMAIN=clients.${TLDOMAIN}
|
|
export SERVERFQDN_IPA=ipa.${TLDOMAIN} # Needs to be the IPA- Server
|
|
export SERVERFQDN_NC=nextcloud.${TLDOMAIN}
|
|
export INSTALLDOCS="https://gitea.dtext.online/obel1x/fedora-OEMDRV/src/branch/main/README.md"
|
|
|
|
#If the REPO_URL and REPO_BRANCH is set, this script collection will do automatic upgrades
|
|
export REPO_URL="https://gitea.dtext.online/obel1x/fedora-OEMDRV.git"
|
|
export REPO_BRANCH="main"
|
|
|
|
#Configuration Files - maybe syned with your companies settings
|
|
export SYSCONFIGPATH="/opt/sys_config"
|
|
export DISTCONFIGPATH="/opt/sys_config/config"
|
|
export DISTCONFIGPATH_SRC="/Shared/sw_geteilt/client_settings"
|
|
|
|
#Group, that will have sudo rights on the client
|
|
export CLIENTADMINGROUP="clientadmins"
|
|
|
|
# Method to determine Unique Hostname / FQDN of the Client. May be replaced by your needs
|
|
# MACHINEID should be set by install.sh. The Determination is done by setup_system.inc.sh as root for old installs.
|
|
if [ -z ${MACHINEID} ]; then
|
|
#Fallback if not configured, should only be needed once for very old installations
|
|
export HOSTNM=$( hostname -s )
|
|
else
|
|
export HOSTNM="pc-${MACHINEID}"
|
|
fi
|
|
export FQDN=${HOSTNM}.${DOMAIN}
|
|
|
|
#Additional Client-Software- Repository-Folder in Nextcloud (Shared Folder / Systemwide)
|
|
export CLIENT_SOFTWARE_DST="/opt/sys_config/client_software" # Optional. If you don't have a Folder that should always be synced, leave this empty
|
|
export CLIENT_SOFTWARE_SRC="/Shared/sw_geteilt/client_software" Set to the Nextcloud directory where the software should come from
|
|
|
|
#Secure File Encryption
|
|
#Needs a running KRA- Service on FreeIPA
|
|
# Set to "true" to use Encryption via IPAVAULT - OTHERWISE YOUR FILES WILL NOT BE ENCRYPTED
|
|
export IPAVAULTUSE="true"
|
|
# Vaultname - can be any Name
|
|
export IPAVAULTNAME="CLIENT_FILEENCRYPTION_"${HOSTNM}
|
|
|
|
#Following settings are only available when run in Userspace
|
|
if [ "$EUID" -ne 0 ]; then
|
|
#This is the Path, that will be mapped from encryptet filesystem at logon - only available for users, not for root
|
|
export DECRYPTEDDATADIR="${HOME}/data" # Decrypted Dir to work for the User
|
|
export ENCRYPTEDDATADIR="${HOME}/.data" # Contains the encrypted Data
|
|
|
|
#Important Files
|
|
export DAVTOKENFILENAME="${DECRYPTEDDATADIR}/WEBDAVTOKEN"
|
|
|
|
#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_RESET_LOCAL="true" # Set this to wipe ~/.mozilla each time if you don't want users to setup their own firefox profile
|
|
export PROFILE_FIREFOX_SRC="mozilla_profiles/firefox"
|
|
export PROFILE_FIREFOX_DST="${DECRYPTEDDATADIR}/firefox"
|
|
|
|
#Thunderbird Profiles
|
|
export PROFILE_TB_SRC="mozilla_profiles/thunderbird"
|
|
export PROFILE_TB_DST="${DECRYPTEDDATADIR}/thunderbird"
|
|
|
|
# Mail account auto-provisioning for DAVTOKEN_USER@TLDOMAIN in Thunderbird
|
|
export SERVERFQDN_IMAP="imap.${TLDOMAIN}" # IMAP server hostname (e.g. imap.strato.de)
|
|
fi
|
|
|
|
#Basic commons not needing change
|
|
export CDATEC8=$(date '+%Y%m%d') # Date 8 Characters long: YYYYMMDD
|
|
export CTIMEC6=$(date '+%H%M%S') # Time 6 Chars: HHMMSS
|
|
|
|
#Basic runtime-Vars
|
|
export EXECDIR=$(pwd)
|
|
export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
|
if [ ${SCRIPTPATH::2} == "//" ]; then
|
|
export SCRIPTPATH=${SCRIPTPATH:1}
|
|
fi
|
|
export SCRIPTNAME=$(basename "$0")
|
|
|
|
#First run Service Name
|
|
export FIRSTRUN_SERVICENAME="setup-system.service"
|
|
export FIRSTRUN_SCRIPTPATH="/usr/lib/systemd/system"
|
|
|
|
# temp and log files
|
|
export TEMPDIR="${HOME}/temp/system_setup"
|
|
export LOGFILE="${TEMPDIR}/${SCRIPTNAME}.log"
|
|
mkdir -p ${TEMPDIR}
|