From e658f1ec4f407642771f1b8885323b9c07b1b2f2 Mon Sep 17 00:00:00 2001 From: Luca Bilke <bilke@tralios.de> Date: Fri, 29 Mar 2024 07:27:52 +0100 Subject: [PATCH] cleanup, bugfix, symlinks functionality --- bootstrap.sh | 30 +++++++++++++++++++++++------- files/usr/bin/pinentry | 1 - symlinks.txt | 1 + 3 files changed, 24 insertions(+), 8 deletions(-) delete mode 120000 files/usr/bin/pinentry create mode 100644 symlinks.txt diff --git a/bootstrap.sh b/bootstrap.sh index 8a70671..4474382 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -80,7 +80,7 @@ setup() { install_packages() { #shellcheck disable=SC2016,SC2046 - xbps-install -y $(sed '/^[[:space:]]*#/d;/^$/d' packages.txt | xargs) 2>&1 | grep -q "not found in repository pool." && error "Invalid package in packages.txt, run validate.sh" + xbps-install -y $(sed '/^[[:space:]]*#/d;/^$/d' "${SCRIPT_DIR}/packages.txt" | xargs) 2>&1 | grep -q "not found in repository pool." && error "Invalid package in packages.txt, run validate.sh" info "Done!" command -v git 1>/dev/null 2>&1 || error "git isn't installed even though it should be!" command -v stow 1>/dev/null 2>&1 || error "stow isn't installed even though it should be!" @@ -94,6 +94,19 @@ install_files() { info "Done!" } +create_symlinks() { + #shellcheck disable=SC2016 + _loop_wrapper "${SCRIPT_DIR}/symlinks.txt" \ + 'Creating symlink $(echo $x | cut -d',' -f1) -> $(echo $x | cut -d',' -f2)' \ + ' + source=$(echo $x | cut -d"," -f2) + target=$(echo $x | cut -d"," -f1) + [ -L $target ] && rm $target + ln -s $source $target + ' + +} + create_user() { failed=false while ! echo "$username" | grep "^[a-z_][a-z0-9_-]*$" | grep -qv "root"; do @@ -130,7 +143,7 @@ create_user() { create_directories() { #shellcheck disable=SC2016 - _loop_wrapper "$1" \ + _loop_wrapper "${SCRIPT_DIR}/directories.txt" \ 'Creating directory $(echo $x | cut -d"," -f1)' \ ' dir=$(echo $x | cut -d"," -f1) @@ -166,10 +179,10 @@ select_keymap() { enable_services() { for sv in /var/service/*; do - grep -qx "$(basename "$sv")" services.txt || rm "$sv" + grep -qx "$(basename "$sv")" "${SCRIPT_DIR}/services.txt" || rm "$sv" done # shellcheck disable=2016 - _loop_wrapper "$1" \ + _loop_wrapper "${SCRIPT_DIR}/services.txt" \ 'Enabling ${x} service' \ '[ ! -L /var/service/${x} ] && ln -s "/etc/sv/${x}" "/var/service/"' info "Done!" @@ -189,11 +202,14 @@ check_root emphasize "-- Copying Files --" install_files +emphasize "-- Creating Symlinks --" +create_symlinks + emphasize "-- Preparing Installation --" setup emphasize "-- Installing Packages --" -install_packages "${SCRIPT_DIR}/packages.txt" +install_packages username="$SUDO_USER" if [ -z "$username" ]; then @@ -204,14 +220,14 @@ else fi emphasize "-- Creating Standard Home Directories --" -create_directories "${SCRIPT_DIR}/directories.txt" +create_directories emphasize "-- Installing Dotfiles --" install_dotfiles select_keymap emphasize "-- Enabling Services --" -enable_services "${SCRIPT_DIR}/services.txt" +enable_services emphasize "-- Finalizing Installation --" finalize diff --git a/files/usr/bin/pinentry b/files/usr/bin/pinentry deleted file mode 120000 index 2b46cd8..0000000 --- a/files/usr/bin/pinentry +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/pinentry-gnome3 \ No newline at end of file diff --git a/symlinks.txt b/symlinks.txt new file mode 100644 index 0000000..4e03959 --- /dev/null +++ b/symlinks.txt @@ -0,0 +1 @@ +/usr/bin/pinentry,pinentry-gnome3