#!/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