summaryrefslogtreecommitdiff
path: root/build.sh
diff options
context:
space:
mode:
authorSuleyman Farajli <suleyman@farajli.net>2024-02-18 17:36:51 +0400
committerSuleyman Farajli <suleyman@farajli.net>2024-02-18 17:36:51 +0400
commitd1e8f727620479a98ad568e8e3dc98e84bef45b2 (patch)
tree56a8dedb74e9e8a6f8692027e3eadd201eb37c5f /build.sh
parentf40c73f3b30547f7267c84bd22677dec65029dc4 (diff)
version 0.2
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