diff options
author | Tristan Williams <tgwil@tgwil.net> | 2024-10-13 16:26:51 -0400 |
---|---|---|
committer | Tristan Williams <tgwil@tgwil.net> | 2024-10-13 16:26:51 -0400 |
commit | 833384d06cf03c318041a01c23fd497f4ca924fd (patch) | |
tree | 01043b06e8304d578b7cc6a1a8ebe263bc269af2 | |
parent | Warn user about dependencies (diff) | |
download | dotfiles.core-833384d06cf03c318041a01c23fd497f4ca924fd.tar.gz dotfiles.core-833384d06cf03c318041a01c23fd497f4ca924fd.tar.bz2 dotfiles.core-833384d06cf03c318041a01c23fd497f4ca924fd.zip |
Massive change, fuck it
Reworked some of the logic of the installer to give the user
options for each section. Also added package installation section
because why not. Bad commit. Multiple things. Oh well.
-rwxr-xr-x | new-user-setup.sh | 126 |
1 files changed, 91 insertions, 35 deletions
diff --git a/new-user-setup.sh b/new-user-setup.sh index 18d020a..adac48b 100755 --- a/new-user-setup.sh +++ b/new-user-setup.sh | |||
@@ -47,22 +47,57 @@ ENDCOLOR="\e[0m" | |||
47 | echo "### Starting dotfiles.core installation... ###" | 47 | echo "### Starting dotfiles.core installation... ###" |
48 | 48 | ||
49 | # Warn user about dependencies | 49 | # Warn user about dependencies |
50 | echo "" | 50 | echo -e "${WARN}WARNING: This installer assumes dotfiles.sys and sys-level packages have been installed. [A]bort, [C]ontinue: ${ENDCOLOR}" |
51 | echo "${WARN}WARNING: This installer assumes that dotfiles.sys and all sys-level packages have been installed.${ENDCOLOR}" | ||
52 | echo "[A]bort, [C]ontinue" | ||
53 | echo -en "\033[1A\033[1000C" | 51 | echo -en "\033[1A\033[1000C" |
54 | read -n1 confirm | 52 | read -n1 confirm |
53 | confirm_invalid_selection=0 | ||
55 | while | 54 | while |
56 | case $confirm in | 55 | case $confirm in |
57 | "a"|"A") | 56 | "a"|"A") |
57 | echo "INFO : Abort!" | ||
58 | exit 0;; | 58 | exit 0;; |
59 | "c"|"C") | 59 | "c"|"C") |
60 | break;; | 60 | break;; |
61 | *) | 61 | *) |
62 | echo -e "${WARN}ERROR : Invalid selection, try again...${ENDCOLOR}" | 62 | echo -e "${WARN}ERROR : Invalid selection, try again...${ENDCOLOR}" |
63 | invalid_selection=1;; | 63 | confirm_invalid_selection=1;; |
64 | esac | 64 | esac |
65 | [[ $invalid_selection==1 ]] | 65 | [[ $confirm_invalid_selection==1 ]] |
66 | do true; done | ||
67 | |||
68 | |||
69 | ######################################################################## | ||
70 | ## Install Packages | ||
71 | ######################################################################## | ||
72 | echo "INFO : Proceed with package installation? Requires sudo privileges [y/n]: " | ||
73 | echo -en "\033[1A\033[1000C" | ||
74 | read -n1 do_package_install | ||
75 | package_invalid_selection=0 | ||
76 | while | ||
77 | case $do_package_install in | ||
78 | "y"|"Y") | ||
79 | sudo pkg update | ||
80 | sudo pkg upgrade && sudo pkg install \ | ||
81 | audio/dsbmixer \ | ||
82 | audio/gtk-mixer \ | ||
83 | graphics/drm-kmod \ | ||
84 | graphics/ImageMagick7 \ | ||
85 | graphics/poppler-glib \ | ||
86 | mail/isync \ | ||
87 | www/firefox \ | ||
88 | x11/arandr \ | ||
89 | x11-fonts/nerd-fonts \ | ||
90 | x11/xorg | ||
91 | echo "INFO : Packages installed and updated." | ||
92 | break;; | ||
93 | "n"|"N") | ||
94 | echo "INFO : Skipping package installation and updates." | ||
95 | break;; | ||
96 | *) | ||
97 | echo -e "${WARN}ERROR : Invalid selection, try again...${ENDCOLOR}" | ||
98 | package_invalid_selection=1;; | ||
99 | esac | ||
100 | [[ $package_invalid_selection==1 ]] | ||
66 | do true; done | 101 | do true; done |
67 | 102 | ||
68 | 103 | ||
@@ -164,36 +199,57 @@ place_directory () { | |||
164 | fi | 199 | fi |
165 | } | 200 | } |
166 | 201 | ||
167 | # Create user dir skeleton | 202 | # Place files |
168 | place_directory $HOME/bin | 203 | echo "INFO : Proceed with dotfiles installation? [y/n]: " |
169 | 204 | echo -en "\033[1A\033[1000C" | |
170 | # Bash Configuration | 205 | read -n1 do_dotfiles_install |
171 | place_file $HOME/dotfiles.core/home/.bash_profile $HOME/.bash_profile | 206 | dotfiles_invalid_selection=0 |
172 | place_file $HOME/dotfiles.core/home/.bashrc $HOME/.bashrc | 207 | while |
173 | place_file $HOME/dotfiles.core/home/.bash_aliases $HOME/.bash_aliases | 208 | case $do_dotfiles_install in |
174 | 209 | "y"|"Y") | |
175 | # GPG Configuration | 210 | # Create user dir skeleton |
176 | place_directory $HOME/.gnupg/ | 211 | place_directory $HOME/bin |
177 | place_file $HOME/dotfiles.core/home/.gnupg/gpg-agent.conf $HOME/.gnupg/gpg-agent.conf | 212 | |
178 | 213 | # Bash Configuration | |
179 | # Git configuration | 214 | place_file $HOME/dotfiles.core/home/.bash_profile $HOME/.bash_profile |
180 | place_file $HOME/dotfiles.core/home/.gitconfig $HOME/.gitconfig | 215 | place_file $HOME/dotfiles.core/home/.bashrc $HOME/.bashrc |
181 | echo -e "${WARN}WARNING: ~/.gitconfig.local should be placed manually${ENDCOLOR}" | 216 | place_file $HOME/dotfiles.core/home/.bash_aliases $HOME/.bash_aliases |
182 | 217 | ||
183 | # Common Lisp SBCL Configuration | 218 | # GPG Configuration |
184 | place_file $HOME/dotfiles.core/home/.sbclrc $HOME/.sbclrc | 219 | place_directory $HOME/.gnupg/ |
185 | place_directory $HOME/lisp | 220 | place_file $HOME/dotfiles.core/home/.gnupg/gpg-agent.conf $HOME/.gnupg/gpg-agent.conf |
186 | # Install Quicklisp | 221 | |
187 | if [[ ! -d $HOME/lisp/quicklisp ]]; then | 222 | # Git configuration |
188 | curl -o /tmp/ql.lisp http://beta.quicklisp.org/quicklisp.lisp | 223 | place_file $HOME/dotfiles.core/home/.gitconfig $HOME/.gitconfig |
189 | sbcl --no-sysinit --no-userinit --load /tmp/ql.lisp \ | 224 | echo -e "${WARN}WARNING: ~/.gitconfig.local should be placed manually${ENDCOLOR}" |
190 | --eval '(quicklisp-quickstart:install :path "~/lisp/quicklisp")' \ | 225 | |
191 | --quit \ | 226 | # Common Lisp SBCL Configuration |
192 | > /dev/null # minimize output | 227 | place_file $HOME/dotfiles.core/home/.sbclrc $HOME/.sbclrc |
193 | echo -e "${GREEN}INFO : Installed Quicklisp${ENDCOLOR}" | 228 | place_directory $HOME/lisp |
194 | else | 229 | # Install Quicklisp |
195 | echo -e "${YELLOW}Skipped: Quicklisp. Already installed${ENDCOLOR}" | 230 | if [[ ! -d $HOME/lisp/quicklisp ]]; then |
196 | fi | 231 | curl -o /tmp/ql.lisp http://beta.quicklisp.org/quicklisp.lisp |
232 | sbcl --no-sysinit --no-userinit --load /tmp/ql.lisp \ | ||
233 | --eval '(quicklisp-quickstart:install :path "~/lisp/quicklisp")' \ | ||
234 | --quit \ | ||
235 | > /dev/null # minimize output | ||
236 | echo -e "${GREEN}INFO : Installed Quicklisp${ENDCOLOR}" | ||
237 | else | ||
238 | echo -e "${YELLOW}Skipped: Quicklisp. Already installed${ENDCOLOR}" | ||
239 | fi | ||
240 | echo "INFO : Configuration files placed!" | ||
241 | break;; | ||
242 | "n"|"N") | ||
243 | echo "INFO : Skipping configuration file placement." | ||
244 | break;; | ||
245 | *) | ||
246 | echo -e "${WARN}ERROR : Invalid selection, try again...${ENDCOLOR}" | ||
247 | dotfiles_invalid_selection=1;; | ||
248 | esac | ||
249 | [[ $dotfiles_invalid_selection=1 ]] | ||
250 | do true; done | ||
251 | |||
252 | |||
197 | 253 | ||
198 | ######################################################################## | 254 | ######################################################################## |
199 | ## END OF SCRIPT | 255 | ## END OF SCRIPT |