summaryrefslogtreecommitdiff
path: root/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build.sh')
-rw-r--r--build.sh93
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