punktdateien-bashrc/startup.sh

79 lines
1.9 KiB
Bash
Raw Normal View History

2024-06-03 01:45:55 +02:00
#!/usr/bin/env bash
# shellcheck disable=SC2154
# Save cwd
BASHRCD_WORKDIR=$(pwd)
[[ -z "${BASHRCD_WORKDIR}" ]] && BASHRCD_WORKDIR=${HOME}
# Cancel execution of system-wide punktdateien-bashrc if user-wide installation is detected
if [ -n "${BASHRCD_SYSTEM}" ] && [ -d "${HOME}/.bashrc.d" ] && [ -f "${HOME}/.bashrc.d/startup.sh" ]; then
2024-06-03 02:21:14 +02:00
unset BASHRCD_SYSTEM
2024-06-03 02:16:14 +02:00
return 0
fi
# Define variables
export "BASHRCD_FALLBACK=exec env --ignore-environment bash --norc --noprofile"
if [ -z "${BASHRCD_SYSTEM}" ]; then
export "BASHRCD_HOMEDIR=${HOME:?}/.bashrc.d"
else
export "BASHRCD_HOMEDIR=/etc/bashrc.d"
fi
# cd into to home directory
cd "${BASHRCD_HOMEDIR}" || (
2024-06-03 01:45:55 +02:00
echo ":: Can't cd into ${HOME:?}/.bashrc.d"
${BASHRCD_FALLBACK}
2024-06-03 01:45:55 +02:00
)
# Initialize basic stuff
[[ -f "init.d/path.sh" ]] && source "init.d/path.sh"
[[ -f "init.d/variables.sh" ]] && source "init.d/variables.sh"
[[ -f "init.d/aliases.sh" ]] && source "init.d/aliases.sh"
[[ -f "init.d/functions.sh" ]] && source "init.d/functions.sh"
2024-06-04 20:53:38 +02:00
# Create default configuration file
if [ ! -f "config.sh" ]; then
if [ -n "${BASHRCD_SYSTEM}" ] && [ "${UID}" != "0" ]; then
echo ":: Warning: Can't create system-wide configuration file as normal user."
else
$(which cat) << EOF >> config.sh
2024-06-03 01:45:55 +02:00
#!/usr/bin/env bash
2024-06-04 20:53:38 +02:00
# Example configuration
2024-06-03 01:45:55 +02:00
CONFIG_AUTOSAVE_HISTORY=1
2024-06-04 20:53:47 +02:00
CONFIG_BETTER_COMPLETION=1
2024-06-03 01:45:55 +02:00
CONFIG_CUSTOM_PROMPT=1
CONFIG_EDITOR=nano
2024-06-04 20:53:38 +02:00
CONFIG_FLOW_CONTROL=0
2024-06-03 01:45:55 +02:00
CONFIG_REPLACE_PKGMGR_ORIGINAL=pacman
CONFIG_REPLACE_PKGMGR_REPLACEMENT=paru
EOF
fi
fi
2024-06-03 01:45:55 +02:00
# Load configuration file
2024-06-03 02:24:29 +02:00
[[ -f "config.sh" ]] && source "config.sh"
2024-06-03 01:45:55 +02:00
2024-06-04 20:53:38 +02:00
# Run settings scripts
for file in settings.d/*; do
# shellcheck disable=SC1090
source "${file}"
done
2024-06-03 01:45:55 +02:00
# Initialize shell programs
for file in programs.d/*; do
# shellcheck disable=SC1090
source "${file}"
done
# Run startup scripts
for file in startup.d/*; do
# shellcheck disable=SC1090
source "${file}"
done
2024-06-03 02:10:23 +02:00
2024-06-03 02:26:19 +02:00
# Finish startup
cd "${BASHRCD_WORKDIR}"
unset BASHRCD_SYSTEM