diff options
author | Suleyman Farajli <suleyman@farajli.net> | 2024-02-18 17:36:51 +0400 |
---|---|---|
committer | Suleyman Farajli <suleyman@farajli.net> | 2024-02-18 17:36:51 +0400 |
commit | d1e8f727620479a98ad568e8e3dc98e84bef45b2 (patch) | |
tree | 56a8dedb74e9e8a6f8692027e3eadd201eb37c5f /build.sh | |
parent | f40c73f3b30547f7267c84bd22677dec65029dc4 (diff) |
version 0.2
Diffstat (limited to 'build.sh')
-rw-r--r-- | build.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..8ab088c --- /dev/null +++ b/build.sh @@ -0,0 +1,93 @@ +#!/bin/sh + +as_sudo(){ + SUDO=sudo + $@ + SUDO="" +} + +config_dir="${XDG_CONFIG_HOME:-$HOME/.config}" +home_dir="${XDG_DATA_HOME:-$HOME}" + +dotfiles_install() { + [ -d $config_dir ] || mkdir -v $config_dir + COPY ./src/dotfiles/* "$config_dir" + COPY ./src/dotfiles/zsh/zshrc "$home_dir" + COPY ./src/dotfiles/Xresources "$home_dir"/.Xresources +} + +scripts_install() { + [ -d /usr/local/bin ] || sudo mkdir -v /usr/local/bin + as_sudo COPY ./src/scripts/* /usr/local/bin/ +} + +archlinux_install() { + as_sudo COPY ./src/distros/arch-linux/pacman.conf /etc +} + +profile_install() { + COPY ./src/dotfiles/zsh/user_profile "$home_dir/.profile" + LINK "$home_dir/.profile" "$home_dir/.zprofile" || echo "WARNING: Couldn't link .zprofile to .profile" + LINK "$home_dir/.profile" "$home_dir/.bash_profile" || echo "WARNING: Couldn't link .bash_profile to .profile" + + [ -d /etc/profile.d ] || { sudo mkdir /etc/profile.d && printf "/etc/profile.d directory created" ; } + as_sudo COPY ./src/etc/profile.d/theion.sh /etc/profile.d || echo "Couldn't install to /etc/profile.d" +} + +help() { + cat <<EOF +Usage $0: + -d Install dotfiles to .config + -s Install scripts to /usr/local/bin + -ds Install scripts and dotfiles + + --profile Install profile files + --archlinux Install Arch linux specific files + --fix-profile make /etc/profile.d sourced + --force Overwrite the existing files + --all Install everything (except Arch linux specific files) +EOF +exit 2 +} + +[ $# = 0 ] && help + +for argument in $@;do + if [ $argument = "--force" ];then + COPY(){ $SUDO cp -r $@; } + LINK(){ ln -sf $@; } + break + fi + LINK(){ ln -s $@; } + COPY(){ $SUDO cp -nr $@; } +done + +for argument in $@;do + case "$argument" in + "-d") dotfiles_install;; + + "-s") + scripts_install;; + + "-ds") + dotfiles_install + scripts_install + ;; + + "--profile") + profile_install;; + + "--archlinux") + as_sudo archlinux_install + ;; + + "--all") + dotfiles_install + scripts_install + profile_install + ;; + "--force");; + + *) help ;; + esac +done |