diff options
Diffstat (limited to 'gohan.sh')
| -rwxr-xr-x | gohan.sh | 78 |
1 files changed, 23 insertions, 55 deletions
@@ -1,19 +1,18 @@ #!/bin/sh + # My Arch Linux installation script -# by David T. Sadler <davidtsadler@googlemail.com> +# by David T. Sadler <david@davidtsadler.com> # License: GNU GPLv3 ### OPTIONS AND VARIABLES ### while getopts ":p:h" o; do case "${o}" in - h) printf "Optional arguments for custom use:\\n -r: Dotfiles repository\\n -p: Dependencies and programs csv (local file or url)\\n -h: Show this message\\n" && exit ;; - r) dotfilesrepo=${OPTARG} && git ls-remote "$dotfilesrepo" || exit ;; + h) printf "Optional arguments for custom use:\\n -p: Dependencies and programs csv (local file or url)\\n -h: Show this message\\n" && exit ;; p) packages=${OPTARG} ;; *) printf "Invalid option: -%s\\n" "$OPTARG" && exit ;; esac done -[ -z "$dotfilesrepo" ] && dotfilesrepo="https://github.com/davidtsadler/dotfiles.git" -[ -z "$packages" ] && packages="https://raw.githubusercontent.com/davidtsadler/gohan/master/packages.csv" +[ -z "$packages" ] && packages="https://git.davidtsadler.com/gohan/plain/packages.csv" ### FUNCTIONS ### @@ -62,23 +61,15 @@ add_user() { usermod -aG wheel "$name" [ ! -d "/home/$name/.local/src" ] && mkdir -p "/home/$name/.local/src" && chown -R "$name":"$name" /home/"$name/.local" # Remove these files as they will be installed as part of the dotfiles. - [ -f "/home/$name/.bash_history" ] && rm /home/$name/.bash_history - [ -f "/home/$name/.bash_logout" ] && rm /home/$name/.bash_logout - [ -f "/home/$name/.bash_profile" ] && rm /home/$name/.bash_profile - [ -f "/home/$name/.bashrc" ] && rm /home/$name/.bashrc +# [ -f "/home/$name/.bash_history" ] && rm /home/$name/.bash_history +# [ -f "/home/$name/.bash_logout" ] && rm /home/$name/.bash_logout +# [ -f "/home/$name/.bash_profile" ] && rm /home/$name/.bash_profile +# [ -f "/home/$name/.bashrc" ] && rm /home/$name/.bashrc echo "$name:$pass1" | chpasswd unset pass1 pass2 } -install_dotfiles() { - dialog --infobox "Downloading and installing dotfiles..." 4 60 - [ ! -d "$2" ] && mkdir -p "$2" && chown -R "$name":"$name" "$2" - sudo -u "$name" git clone --bare --depth 1 "$1" "$2" >/dev/null 2>&1 - sudo -u "$name" git --git-dir="$2" --work-tree="/home/$name" checkout - sudo -u "$name" git --git-dir="$2" --work-tree="/home/$name" config --local status.showUntrackedFiles no -} - -install_software() { +install_packages() { ([ -f "$packages" ] && cp "$packages" /tmp/packages.csv) || curl -Ls "$packages" > /tmp/packages.csv total=$(wc -l < /tmp/packages.csv) while IFS=, read -r tag program comment; do @@ -119,34 +110,19 @@ configure_sudo() { install_yay() { [ -f "/usr/bin/yay" ] || ( - dialog --infobox "Installing \"yay\", an AUR helper..." 4 50 - cd /tmp || exit - rm -rf /tmp/yay* - # Use all cores for compilation. - sed -i "s/-j2/-j$(nproc)/;s/^#MAKEFLAGS/MAKEFLAGS/" /etc/makepkg.conf - curl -sO https://aur.archlinux.org/cgit/aur.git/snapshot/yay.tar.gz && - sudo -u "$name" tar -xvf yay.tar.gz >/dev/null 2>&1 && - cd yay && - sudo -u "$name" makepkg --noconfirm -si >/dev/null 2>&1 - cd /tmp || return); -} - -install_nvm() { - [ ! -d "/home/$name/.local/src/nvm" ] && mkdir -p "/home/$name/.local/src/nvm" && chown "$name":"$name" "/home/$name/.local/src/nvm" && - sudo -u "$name" curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | NVM_DIR="/home/$name/.local/src/nvm" bash >/dev/null 2>&1 && - [ -d "/home/$name/.local/src/nvm" ] && chown -R "$name":"$name" "/home/$name/.local/src/nvm" -} - -install_composer() { - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" >/dev/null 2>&1 - php -r "if (hash_file('sha384', 'composer-setup.php') === '572cb359b56ad9ae52f9c23d29d4b19a040af10d6635642e646a7caa7b96de717ce683bd797a92ce99e5929cc51e7d5f') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" >/dev/null 2>&1 - php composer-setup.php --install-dir="/home/$name/.local/bin" --filename=composer >/dev/null 2>&1 - [ -f "/home/$name/.local/bin/composer" ] && chown "$name:$name" "/home/$name/.local/bin/composer" -} - -install_auto_cpufreq_service() { - systemctl start auto-cpufreq - systemctl enable auto-cpufreq + dialog --infobox "Installing \"yay\", an AUR helper..." 4 50 + install_from_pacman base-devel + install_from_pacman git + # Use all cores for compilation. + sed -i "s/-j2/-j$(nproc)/;s/^#MAKEFLAGS/MAKEFLAGS/" /etc/makepkg.conf + cd /tmp || exit + rm -rf /tmp/yay* + git clone "https://aur.archlinux.org/yay.git" + cd yay + makepkg --noconfirm -si >/dev/null 2>&1 + cd /tmp + rm -rf yay + ); } ### THE ACTUAL SCRIPT ### @@ -165,16 +141,8 @@ add_user || error "Error adding username and/or password." configure_sudo -install_dotfiles $dotfilesrepo "/home/$name/.local/src/dotfiles" - install_yay -install_software - -install_nvm - -install_composer - -install_auto_cpufreq_service +install_packages clear |
