#!/bin/bash # # SCRIPT NAME: # install.sh # # AUTHOR: # Severin Kaderli # # DESCRIPTION: # This is the main installation script for my dotfiles. It setups the symlinks # to the neeeded files, creates new directories, enables systemd services, # installs pacman packages and gives out the correct permissions to files. # # USAGE: # ./install.sh . ./system/bin/utils.sh ####################################### # Configuration variables ####################################### USER="severin" # Array of directories which should be created DIRECTORIES=( ".logs" "Build" "Downloads" "Projects" ) # Array of files which should be symlinked in the home folder LINKED_FILES_HOME=( ".aliases" ".bash_logout" ".bash_profile" ".bashrc" ".config/autokey" ".config/bat" ".config/compton" ".config/cron" ".config/dconf" ".config/dunst" ".config/git" ".config/gtk-3.0" ".config/htop" ".config/i3" ".config/mpv" ".config/polybar" ".config/redshift" ".config/streamlink" ".config/termite" ".config/Trolltech.conf" ".config/vue" ".dircolors" ".env" ".gtkrc-2.0.mine" ".gtkrc-2.0" ".keyleds" ".vimrc" ".xinitrc" ".xprofile" ".Xresources" ".xsetup" "bin" ) # Groups the user should be added to ADD_GROUPS=( "bumblebee" ) # Array of systemd services which should be enabled SYSTEMD_SERVICES=( "bumblebeed" "cronie" "NetworkManager" "org.cups.cupsd" ) ####################################### # Main code ####################################### print_header "Creating directories" for dir in "${DIRECTORIES[@]}" do create_directory "${dir}" done print_header "Installing packages" #sudo pacman -S git base-devel --noconfirm # Install yay #git clone https://aur.archlinux.org/yay.git #cd yay #makepkg -si --noconfirm --skippgpcheck #cd .. #rm -rf yay # Install packages #yay -S --noconfirm $(cat "${PACKAGES_DIR}/packages.list") print_header "Creating symlinks" for file in "${LINKED_FILES_HOME[@]}"; do create_link "${file}" done print_header "Give permissions" set_permission severin 744 "${HOME}/bin" print_header "Add user to groups" for group in "${ADD_GROUPS[@]}" do add_to_group "${USER}" "${group}" done print_header "Enabling systemd services" for service in "${SYSTEMD_SERVICES[@]}" do enable_service "${service}" done print_header "Copy custom udev rules" for file in ${SYSTEM_DIR}/udev/rules.d/*.rules do copy_udev_rule "${file}" done sudo udevadm control --reload-rules