aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure141
1 files changed, 141 insertions, 0 deletions
diff --git a/configure b/configure
new file mode 100755
index 0000000..8e67254
--- /dev/null
+++ b/configure
@@ -0,0 +1,141 @@
+#!/bin/bash
+
+set -o pipefail
+M4_DEF_FILE="system.m4"
+
+HOME_DIRECTORY=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --inputbox "Home directory" \
+ 0 0 "${HOME}" \
+3>&1 1>&2 2>&3 3>&-)
+
+DEFAULT_SHELL=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --inputbox "Default shell" \
+ 0 0 "/usr/bin/zsh" \
+3>&1 1>&2 2>&3 3>&-)
+
+DEFAULT_EDITOR=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --inputbox "Default editor" \
+ 0 0 "nvim" \
+3>&1 1>&2 2>&3 3>&-)
+
+SYSID=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --inputbox "System id (magical number)" \
+ 0 0 "1" \
+3>&1 1>&2 2>&3 3>&-)
+
+SYSTEM_TYPE=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --radiolist "System type" \
+ 0 0 0 \
+ 0 "Local" on \
+ 1 "Remote" off \
+3>&1 1>&2 2>&3 3>&-)
+
+DISTRO=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --radiolist "Distro" \
+ 0 0 0 \
+ 0 "Debian" on \
+ 1 "Fedora" off \
+3>&1 1>&2 2>&3 3>&-)
+
+GIT_VALUES=$(dialog \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --form "Git settings" \
+0 50 0 \
+ "Username:" 1 1 "$GIT_USER" 1 10 255 0 \
+ "Email:" 2 1 "$GIT_EMAIL" 2 10 255 0 \
+3>&1 1>&2 2>&3 3>&-)
+GIT_VALUES=($GIT_VALUES)
+
+FEATURES="$(dialog --stdout \
+ --backtitle "Dotfile configuration" \
+ --title "Configure" \
+ --checklist "Change dotfile features:" 0 0 10 \
+ 1 "General tools (highligt, mediainfo, git, ripgrep...)" on \
+ 2 "Other dotfile symlinks (Not for specific features below)" on \
+ 3 "neovim" on \
+ 4 "ZSH and Oh-My-Zsh" off \
+ 5 "tlp" off \
+ 6 "autorandr" off \
+ 7 "greetd and tuigreet" off \
+ 8 "Powerline and P10K" off \
+ 9 "Sway" off \
+ 10 "QTile" off)"
+
+
+# Write all to file
+echo "m4_define(\`DOTFILES_DIR', \`$(pwd)')m4_dnl" > ${M4_DEF_FILE}
+echo "m4_define(\`HOME_DIRECTORY', \`${HOME_DIRECTORY}')m4_dnl" >> ${M4_DEF_FILE}
+echo "m4_define(\`DEFAULT_SHELL', \`${DEFAULT_SHELL}')m4_dnl" >> ${M4_DEF_FILE}
+echo "m4_define(\`DEFAULT_EDITOR', \`${DEFAULT_EDITOR}')m4_dnl" >> ${M4_DEF_FILE}
+echo "m4_define(\`SYSID', \`${SYSID}')m4_dnl" >> ${M4_DEF_FILE}
+
+case $SYSTEM_TYPE in
+ 0)
+ echo "m4_define(\`DOTFILES_TYPE', \`local')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 1)
+ echo "m4_define(\`DOTFILES_TYPE', \`remote')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+esac
+
+case $DISTRO in
+ 0)
+ echo "m4_define(\`DISTRO', \`debian')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 1)
+ echo "m4_define(\`DISTRO', \`fedora')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+esac
+
+echo "m4_define(\`GIT_USER', \`${GIT_VALUES[0]}')m4_dnl" >> ${M4_DEF_FILE}
+echo "m4_define(\`GIT_EMAIL', \`${GIT_VALUES[1]}')m4_dnl" >> ${M4_DEF_FILE}
+
+for choice in ${FEATURES}; do
+ case $choice in
+ 1)
+ echo "m4_define(\`INSTALL_TOOLS', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 2)
+ echo "m4_define(\`INSTALL_OTHER_SYMLINKS', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 3)
+ echo "m4_define(\`INSTALL_NEOVIM', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 4)
+ echo "m4_define(\`INSTALL_OH_MY_ZSH', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 5)
+ echo "m4_define(\`INSTALL_TLP', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 6)
+ echo "m4_define(\`INSTALL_AUTORANDR', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 7)
+ echo "m4_define(\`INSTALL_GREETD_TUIGREET', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 8)
+ echo "m4_define(\`INSTALL_POWERLINE_P10K', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 9)
+ echo "m4_define(\`INSTALL_SWAY', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ 10)
+ echo "m4_define(\`INSTALL_QTILE', \`1')m4_dnl" >> ${M4_DEF_FILE}
+ ;;
+ esac
+done
+
+m4 -P Makefile.m4 > Makefile