From 91c6e6f6a9ec22173d70829781e669a4ed897b17 Mon Sep 17 00:00:00 2001 From: Matt C Date: Thu, 7 Oct 2021 23:47:10 -0400 Subject: [PATCH 01/33] first proto of dialog boxes, and makefile for tests --- Makefile | 7 ++ citrine.internal.sh | 102 ++++++++++++++++--------- continue.sh | 179 ++++++++++++++++++++------------------------ 3 files changed, 157 insertions(+), 131 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c6bea82 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +install: + chmod +x *.sh + mv *.sh /usr/bin + mv /usr/bin/citrine.sh /usr/bin/citrine + mv /usr/bin/citrine.internal.sh /usr/bin/citrine.internal +test: install + citrine \ No newline at end of file diff --git a/citrine.internal.sh b/citrine.internal.sh index 98af060..c5d76ff 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -14,6 +14,26 @@ prompt() { read response } +# --------------------------------- +yn="" +yesno() { + dialog --title Citrine --yesno "$@" 10 80 + yn="$?" +} + +dumptitle="" +dump() { + dialog --title $dumptitle --no-collapse --msgbox "$@" 0 0 +} + +msgdat="" +msgbox(){ + dialog --title Citrine --inputbox "$@" 10 80 2>tmp + msgdat=$(cat tmp) + rm tmp +} +# -------------------------- + if [[ "$EUID" != "0" ]]; then err "Run as root" exit 1 @@ -24,10 +44,12 @@ pacman-key --init pacman-key --populate archlinux pacman-key --populate crystal -prompt "Do you need a keyboard layout other than standard US? (y/N)" -KBD="$response" +yesno "Do you need a keyboard layout other than QWERTY US?" +KBD="$yn" echo "KBD=$response" -if [[ "$KBD" == "y" || "$KBD" == "Y" ]]; then + +# TODO: layout select in dialog +if [[ "$KBD" == "0" || "$KBD" == "0" ]]; then prompt "We're going to show the list of keymaps in less. Do you know how to exit less? (Y/n)" UL="$response" if [[ "$UL" == "n" ]]; then @@ -44,23 +66,24 @@ fi clear -inf "Disks:" -fdisk -l | grep Disk | grep sectors --color=never - -prompt "Would you like to partition manually? (y/N)" +yesno "Would you like to partition manually?" echo "PMODE=$response" -PMODE="$response" +PMODE="$yn" + +dumptitle="System Disks" +dump "$(fdisk -l | grep Disk | grep sectors --color=never)" MANUAL="no" DISK="" -if [[ "$PMODE" == "y" ]]; then +if [[ "$PMODE" == "0" ]]; then MANUAL="yes" else - prompt "Install target WILL BE FULLY WIPED" - echo "DISK=$response" - DISK="$response" + msgbox "Install target WILL BE FULLY WIPED" + echo "DISK=$msgdat" + DISK="$msgdat" if ! fdisk -l ${DISK}; then - err "Seems like $DISK doesn't exist. Did you typo?" + dumptitle="ERROR" + dump "Seems like $DISK doesn't exist. Did you typo?" exit 1 fi fi @@ -81,16 +104,21 @@ else fi echo "EFI=$EFI" +dumptitle="Please confirm" if [[ "$EFI" == "yes" ]]; then - prompt "This PC seems to have booted with UEFI. Press enter to confirm" + dump "This PC seems to *have* booted with UEFI. Press enter to confirmor Control+C to cancel" else - prompt "This PC seems to *not* have booted with UEFI. Press enter to aknowledge, or press Control+C if this seems wrong." + dump "This PC seems to *not* have booted with UEFI. Press enter to aknowledge, or press Control+C if this seems wrong." fi inf "Setting system clock via network" timedatectl set-ntp true if [[ "$MANUAL" == "no" ]]; then + + dumptitle="CAUTION!" + dump "This is your last chance to avoid deleting critical data on $DISK. If you're not sure, press Control+C NOW!" + echo "Partitioning disk" if [[ "$EFI" == "yes" ]]; then parted ${DISK} mklabel gpt --script @@ -132,30 +160,34 @@ if [[ "$MANUAL" == "no" ]]; then fi else clear - inf "You have chosen manual partitioning." - inf "We're going to drop to a shell for you to partition, but first, PLEASE READ these notes." - inf "Before you exit the shell, make sure to format and mount a partition for / at /mnt" + + dumptitle="Read carefully." + + dump "You have chosen manual partitioning.\ + We're going to drop to a shell for you to partition, but first, PLEASE READ these notes.\ + Before you exit the shell, make sure to format and mount a partition for / at /mnt." + if [[ "$EFI" == "yes" ]]; then mkdir -p /mnt/efi - inf "Additionally, since this machine was booted with UEFI, please make sure to make a 200MB or greater partition" - inf "of type VFAT and mount it at /mnt/efi" + + dump "Additionally, since this machine was booted with UEFI, please make sure to make a 200MB or greater partition\ + of type VFAT and mount it at /mnt/efi" else - inf "Please give me the full path of the device you're planning to partition (needed for bootloader installation later)" - inf "Example: /dev/sda" - printf ": " - read DISK + msgbox "Please give me the full path of the device you're planning to partition (needed for bootloader installation later)\ + .. Example: /dev/sda" + DISK="${msgdat}" fi CONFDONE="NOPE" + dumptitle="Citrine" while [[ "$CONFDONE" == "NOPE" ]]; do - inf "Press enter to go to a shell." - read - bash - prompt "All set (and partitions mounted?) (y/N)" - echo "STAT=$response" - STAT="$response" - if [[ "$STAT" == "y" ]]; then + dump "Press enter to go to a shell. (ZSH)" + zsh + yesno "All set (and partitions mounted?)" + echo "STAT=$yn" + STAT="$yn" + if [[ "$STAT" == "0" ]]; then if ! findmnt | grep /mnt; then err "Are you sure you've mounted the partitions?" @@ -170,7 +202,8 @@ inf "Verifying network connection" ping -c 1 getcryst.al if [[ ! "$?" == "0" ]]; then - err "It seems like this system can't reach the internet. Exiting." + dumptitle="Error!" + dump "It seems like this system can't reach the internet. Exiting." exit 1 fi @@ -209,6 +242,7 @@ fi arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log rm /mnt/continue.sh -inf "Installation should now be complete." -read +dumptitle="Citrine" +dump "Installation should now be complete." +#read diff --git a/continue.sh b/continue.sh index 83c110d..a6f7e74 100755 --- a/continue.sh +++ b/continue.sh @@ -14,10 +14,30 @@ prompt() { read response } +# --------------------------------- +yn="" +yesno() { + dialog --title Citrine --yesno "$@" 10 80 + yn="$?" +} + +dumptitle="" +dump() { + dialog --title $dumptitle --no-collapse --msgbox "$@" 0 0 +} + +msgdat="" +msgbox(){ + dialog --title Citrine --inputbox "$@" 10 80 2>tmp + msgdat=$(cat tmp) + rm tmp +} +# -------------------------- + clear TZ="/usr/share/LMAO/XD" while [[ ! -f $TZ ]]; do - prompt "Pick a time zone (Format: America/New_York , Europe/London, etc)" + msgbox "Pick a time zone (Format: America/New_York , Europe/London, etc)" PT="$response" TZ="/usr/share/zoneinfo/${PT}" done @@ -31,21 +51,21 @@ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen echo "LANG=en_US.UTF-8" > /etc/locale.conf clear -prompt "Do you need more locales than just en_US? (y/N)" -echo "MORE=$response" -MORE="$response" - -if [[ "$MORE" == "y" || "$MORE" == "Y" ]]; then - prompt "Preferred editor" - PGRM="$response" - echo "PGRM=$response" +yesno "Do you need more locales than just en_US?" +echo "MORE=$yn" +MORE="$yn" + +if [[ "$MORE" == "0" ]]; then + msgbox "Preferred editor" + PGRM="$msgdat" + echo "PGRM=$msgdat" if [[ -x "$(command -v ${PGRM})" ]]; then inf "Attempting to install ${PGRM}" pacman -Sy ${PGRM} --noconfirm fi - inf "When we open the file, please remove the leading # before any locales you need." - inf "Then, save and exit.\nPress enter." - read + dumptitle="Read carefully." + dump "When we open the file, please remove the leading # before any locales you need.\ + Then, save and exit." ${PGRM} /etc/locale.gen fi @@ -67,19 +87,21 @@ if [[ -f /keymap ]]; then fi clear -prompt "System hostname" -HOSTNAME="$response" +msgbox "Enter the system hostname" +HOSTNAME="$msgdat" echo ${HOSTNAME} > /etc/hostname echo "127.0.0.1 localhost" > /etc/hosts -prompt "Would you like IPV6? (y/N)" -IPS="$response" -if [[ "$IPS" == "y" || "$IPS" == "Y" ]]; then + +yesno "Would you like IPV6?" +IPS="$yn" + +if [[ "$IPS" == "0" ]]; then echo "::1 localhost" >> /etc/hosts fi echo "127.0.1.1 ${HOSTNAME}.localdomain ${HOSTNAME}" >> /etc/hosts clear -inf "Password for root" +inf "Set a password for root" done="nope" while [[ "$done" == "nope" ]]; do passwd @@ -88,8 +110,8 @@ while [[ "$done" == "nope" ]]; do fi done -prompt "Your username" -UN="$response" +msgbox "Your username" +UN="$msgdat" useradd -m ${UN} usermod -aG wheel ${UN} inf "Set password for ${UN}" @@ -124,34 +146,33 @@ pacman-key --populate crystal clear -prompt "Would you like to install a DE/WM profile? (y/N)" -echo "DEP=$response" -DEP="$response" - -if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then - inf "--- Desktop Environments ---" - inf "- Budgie" - inf "- Cinnamon" - inf "- Deepin" - inf "- Enlightenment (note: very DIY. Read Arch Wiki)" - inf "- GNOME" - # Flashback seems to need some work - #inf "- (GNOME) Flashback" - inf "- KDE" - inf "- LXDE" - inf "- LXQt" - inf "- Mate" - inf "- Cutefish" - inf "- Xfce" - inf "- UKUI (note: very poorly documented. In english, anyway)" - inf "--- Window Managers ---" - inf "- i3" - inf "(We'll add more as people ask)" - inf "Please enter exactly as shown." - prompt "" - echo "DE=$response" - DE="$response" + +yesno "Would you like to install a DE/WM profile?" + +echo "DEP=$yn" +DEP="$yn" + +if [[ "$DEP" == "0" ]]; then + + dumptitle="Desktop/WM Choices" + + dump "\ + --- Desktop Environments --- + - Budgie + - Cinnamon + - Deepin + - GNOME + - KDE + - LXDE + - LXQt + - Mate + - Xfce" + + msgbox "DE Choice (please enter exactly)" + echo "DE=$msgdat" + DE="$msgdat" DM="" + if [[ "$DE" == "Budgie" ]]; then pacman -Sy --quiet --noconfirm budgie-desktop gnome DM="gdm" @@ -161,15 +182,9 @@ if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then elif [[ "$DE" == "Deepin" ]]; then pacman -Sy --quiet --noconfirm deepin deepin-extra DM="lightdm" - elif [[ "$DE" == "Enlightenment" ]]; then - pacman -Sy --quiet --noconfirm enlightenment terminology elif [[ "$DE" == "GNOME" ]]; then pacman -Sy --quiet --noconfirm gnome gnome-extra chrome-gnome-shell DM="gdm" - elif [[ "$DE" == "Flashback" || "$DE" == "GNOME Flashback" || "$DE" == "(GNOME) Flashback" ]]; then - DE="Flashback" - pacman -Sy --quiet --noconfirm gnome-flashback gnome-backgrounds gnome-control-center network-manger-applet gnome-applets sensors-applet - DM="gdm" elif [[ "$DE" == "KDE" ]]; then pacman -Sy --quiet --noconfirm plasma kde-applications sddm DM="sddm" @@ -182,47 +197,17 @@ if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then elif [[ "$DE" == "Mate" ]]; then pacman -Sy --quiet --noconfirm mate mate-extra mate-applet-dock mate-applet-streamer DM="gdm" - elif [[ "$DE" == "UKUI" ]]; then - pacman -Sy --quiet --noconfirm ukui elif [[ "$DE" == "Xfce" ]]; then pacman -Sy --quiet --noconfirm xfce4 xfce4-goodies DM="sddm" elif [[ "$DE" == "Cutefish" || "$DE" == "cutefish" ]] ;then pacman -Sy --quiet --noconfirm cutefish DM="sddm" - # Start WM's - elif [[ "$DE" == "i3" ]]; then - inf "Choose either i3 or i3-gaps in below prompt. Rest of group is your preference" - inf "Press enter" - prompt "" - pacman -Sy i3 xorg-xinit xorg-server - fi - - if [[ "$DM" == "" ]]; then - inf "Your selected DE/WM doesn't have a standard display manager. Enter one of the below names, or leave blank for none" - inf "- gdm" - inf "- sddm" - inf "- lightdm (you'll need a greeter package. See Arch Wiki)" - inf "- (you can type another Arch package name if you have one in mind)" - inf "- [blank] for none" - prompt "" - ND="$response" - echo "ND=$ND" - if [[ "$ND" != "" ]]; then - inf "Ok, we'll install $ND" - DM="$ND" - pacman -Sy --quiet --noconfirm $DM - else - inf "Ok, not installing a display manager." - fi - else - pacman -Sy --quiet --noconfirm $DM - fi if [[ "$DM" != "" ]]; then - prompt "Would you like to enable ${DM} for ${DE}? (Y/n)" - useDM="$response" - if [[ "$useDM" != "n" ]]; then + yesno "Would you like to enable ${DM} for ${DE}?" + useDM="$yn" + if [[ "$useDM" == "0" ]]; then systemctl enable ${DM} if [[ "$DE" == "Deepin" ]]; then sed -i 's/lightdm-gtk-greeter/lightdm-deepin-greeter/g' /etc/lightdm/lightdm.conf @@ -231,19 +216,19 @@ if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then fi fi -prompt "Would you like to add more packages? (Y/n)" -MP="$response" -if [[ "$MP" != "n" ]]; then - prompt "Would you like to use a URL to a package list? (Y/n)" - OL="$response" - if [[ "$OL" == "n" ]]; then - prompt "Write package names" - PKGNS="$response" +yesno "Would you like to add more packages?" +MP="$yn" +if [[ "$MP" == "0" ]]; then + yesno "Would you like to use a URL to a package list?" + OL="$yesno" + if [[ "$OL" != "0" ]]; then + msgbox "Package names" + PKGNS="$msgdat" inf "Installing: $PKGNS" ame -S ${PKGNS} else - prompt "URL to package list" - SRC="$response" + msgbox "URL to package list" + SRC="$msgdat" PKGS="$(curl ${SRC})" for PKG in PKGS; do ame -S ${PKG} @@ -251,4 +236,4 @@ if [[ "$MP" != "n" ]]; then fi fi -inf "Installation complete" +#inf "Installation complete" From 7bcb84a79e9b64b7046fd69ca9200c59efa01fae Mon Sep 17 00:00:00 2001 From: Matt C Date: Thu, 7 Oct 2021 23:52:57 -0400 Subject: [PATCH 02/33] minor fixes --- citrine.internal.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index c5d76ff..a52657b 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -23,7 +23,7 @@ yesno() { dumptitle="" dump() { - dialog --title $dumptitle --no-collapse --msgbox "$@" 0 0 + dialog --title "${dumptitle}" --no-collapse --msgbox "$@" 0 0 } msgdat="" @@ -71,7 +71,8 @@ echo "PMODE=$response" PMODE="$yn" dumptitle="System Disks" -dump "$(fdisk -l | grep Disk | grep sectors --color=never)" +diskdat="$(fdisk -l | grep Disk | grep sectors --color=never)" +dump "$diskdat" MANUAL="no" DISK="" From a843c26c3c2e719c00aa57c541f3c15e4448d738 Mon Sep 17 00:00:00 2001 From: Matt C Date: Thu, 7 Oct 2021 23:53:33 -0400 Subject: [PATCH 03/33] whoopsie make goof --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c6bea82..ecefd82 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ install: chmod +x *.sh - mv *.sh /usr/bin + cp *.sh /usr/bin mv /usr/bin/citrine.sh /usr/bin/citrine mv /usr/bin/citrine.internal.sh /usr/bin/citrine.internal test: install From e0457fa639910dd06c5ecd260a1dd01f6ab07a67 Mon Sep 17 00:00:00 2001 From: Matt C Date: Thu, 7 Oct 2021 23:58:35 -0400 Subject: [PATCH 04/33] whoopsie forgot `tmp` is a root folder also --- citrine.internal.sh | 6 +++--- continue.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index a52657b..c21d2a0 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -28,9 +28,9 @@ dump() { msgdat="" msgbox(){ - dialog --title Citrine --inputbox "$@" 10 80 2>tmp - msgdat=$(cat tmp) - rm tmp + dialog --title Citrine --inputbox "$@" 10 80 2>tmp.citrine + msgdat=$(cat tmp.citrine) + rm tmp.citrine } # -------------------------- diff --git a/continue.sh b/continue.sh index a6f7e74..6398897 100755 --- a/continue.sh +++ b/continue.sh @@ -28,9 +28,9 @@ dump() { msgdat="" msgbox(){ - dialog --title Citrine --inputbox "$@" 10 80 2>tmp - msgdat=$(cat tmp) - rm tmp + dialog --title Citrine --inputbox "$@" 10 80 2>tmp.citrine + msgdat=$(cat tmp.citrine) + rm tmp.citrine } # -------------------------- From 2b17729aadd441bd1dc75320868530d9d999be99 Mon Sep 17 00:00:00 2001 From: Matt C Date: Fri, 8 Oct 2021 00:36:36 -0400 Subject: [PATCH 05/33] is this the issue? --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index c21d2a0..b325111 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -240,7 +240,7 @@ else echo ${DISK} > /mnt/diskn fi -arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log +arch-chroot /mnt /continue.sh #2>&1 | tee /mnt/var/log/citrine.chroot.log rm /mnt/continue.sh dumptitle="Citrine" From c1d894d002ee8dc8f3d0925ec85f96e5a043c9fc Mon Sep 17 00:00:00 2001 From: Matt C Date: Fri, 8 Oct 2021 00:41:06 -0400 Subject: [PATCH 06/33] im kinda stupid ok --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index b325111..4626f3d 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -213,7 +213,7 @@ inf "Setting up base Crystal System" crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch if [[ ! "$?" == "0" ]]; then inf "CrystalStrap had some error. Retrying." - crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch + crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch dialog fi if [[ "$EFI" == "yes" ]]; then From fed81d604d2ccdc5efd9fdfba76bafa8de6e2157 Mon Sep 17 00:00:00 2001 From: Matt C Date: Fri, 8 Oct 2021 00:55:03 -0400 Subject: [PATCH 07/33] so that wasn't it --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 4626f3d..884e2de 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -240,7 +240,7 @@ else echo ${DISK} > /mnt/diskn fi -arch-chroot /mnt /continue.sh #2>&1 | tee /mnt/var/log/citrine.chroot.log +arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log rm /mnt/continue.sh dumptitle="Citrine" From ed71912ea2c7e93c6e439782657a7a8a0cee0b82 Mon Sep 17 00:00:00 2001 From: axtloss <3alouchi2006@gmail.com> Date: Fri, 8 Oct 2021 17:45:43 +0200 Subject: [PATCH 08/33] fixed dialog in chroot TODO: yesno dialogs still wanky --- citrine.internal.sh | 9 +++------ continue.sh | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 884e2de..e2cf73a 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -17,8 +17,7 @@ prompt() { # --------------------------------- yn="" yesno() { - dialog --title Citrine --yesno "$@" 10 80 - yn="$?" + yn=$(dialog --title Citrine --yesno "$@" --stdout 10 80) } dumptitle="" @@ -28,9 +27,7 @@ dump() { msgdat="" msgbox(){ - dialog --title Citrine --inputbox "$@" 10 80 2>tmp.citrine - msgdat=$(cat tmp.citrine) - rm tmp.citrine + msgdat=$(dialog --title Citrine --inputbox "$@" --stdout 10 80) } # -------------------------- @@ -210,7 +207,7 @@ fi inf "Setting up base Crystal System" -crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch +crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch dialog if [[ ! "$?" == "0" ]]; then inf "CrystalStrap had some error. Retrying." crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch dialog diff --git a/continue.sh b/continue.sh index 6398897..f1c3337 100755 --- a/continue.sh +++ b/continue.sh @@ -17,20 +17,17 @@ prompt() { # --------------------------------- yn="" yesno() { - dialog --title Citrine --yesno "$@" 10 80 - yn="$?" + yn=$(dialog --title Citrine --yesno "$@" --stdout 10 80) } dumptitle="" dump() { - dialog --title $dumptitle --no-collapse --msgbox "$@" 0 0 + dialog --title "${dumptitle}" --no-collapse --msgbox "$@" 0 0 } msgdat="" msgbox(){ - dialog --title Citrine --inputbox "$@" 10 80 2>tmp.citrine - msgdat=$(cat tmp.citrine) - rm tmp.citrine + msgdat=$(dialog --title Citrine --inputbox "$@" --stdout 10 80) } # -------------------------- From fd3d691356a08e6f11f000b58efe8e8a9d74ee33 Mon Sep 17 00:00:00 2001 From: axtlos Date: Thu, 14 Oct 2021 19:44:57 +0000 Subject: [PATCH 09/33] Remove extra `read` at end of citrine --- citrine.internal.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index cb6f08c..df2849e 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -240,11 +240,8 @@ fi arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log rm /mnt/continue.sh -<<<<<<< HEAD dumptitle="Citrine" dump "Installation should now be complete." #read -======= inf "Installation should now be complete." ->>>>>>> main From 8afe15cf5794fa691552e501bb946e3cb7684bb8 Mon Sep 17 00:00:00 2001 From: axtlos Date: Thu, 14 Oct 2021 19:44:57 +0000 Subject: [PATCH 10/33] Remove extra `read` at end of citrine --- citrine.internal.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index df2849e..ec93fbd 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -240,8 +240,4 @@ fi arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log rm /mnt/continue.sh -dumptitle="Citrine" -dump "Installation should now be complete." -#read - inf "Installation should now be complete." From ca20775669aecc33e60bd62ceea7b2d9a51640f1 Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 11:30:29 -0400 Subject: [PATCH 11/33] lots of merge fixes --- continue.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/continue.sh b/continue.sh index 46d6e1b..77e040c 100755 --- a/continue.sh +++ b/continue.sh @@ -48,6 +48,7 @@ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen echo "LANG=en_US.UTF-8" > /etc/locale.conf clear +<<<<<<< HEAD yesno "Do you need more locales than just en_US?" echo "MORE=$yn" MORE="$yn" @@ -64,6 +65,17 @@ if [[ "$MORE" == "0" ]]; then dump "When we open the file, please remove the leading # before any locales you need.\ Then, save and exit." ${PGRM} /etc/locale.gen +======= +prompt "Do you need more locales than just en_US? (y/N)" +echo "MORE=$response" +MORE="$response" + +if [[ "$MORE" == "y" || "$MORE" == "Y" ]]; then + inf "When we open the file, please remove the leading # before any locales you need." + inf "Then, save and exit.\nPress enter." + read + micro /etc/locale.gen +>>>>>>> a911136 (ok sorry (not) we're using micro now) fi inf "Generating selected locales." From 0591f5a9928cd368202f13bd969e4a1e0f2c3563 Mon Sep 17 00:00:00 2001 From: michal Date: Wed, 20 Oct 2021 17:57:34 +0000 Subject: [PATCH 12/33] Update 'continue.sh' --- continue.sh | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/continue.sh b/continue.sh index 77e040c..aa7f7a5 100755 --- a/continue.sh +++ b/continue.sh @@ -48,24 +48,6 @@ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen echo "LANG=en_US.UTF-8" > /etc/locale.conf clear -<<<<<<< HEAD -yesno "Do you need more locales than just en_US?" -echo "MORE=$yn" -MORE="$yn" - -if [[ "$MORE" == "0" ]]; then - msgbox "Preferred editor" - PGRM="$msgdat" - echo "PGRM=$msgdat" - if [[ -x "$(command -v ${PGRM})" ]]; then - inf "Attempting to install ${PGRM}" - pacman -Sy ${PGRM} --noconfirm - fi - dumptitle="Read carefully." - dump "When we open the file, please remove the leading # before any locales you need.\ - Then, save and exit." - ${PGRM} /etc/locale.gen -======= prompt "Do you need more locales than just en_US? (y/N)" echo "MORE=$response" MORE="$response" @@ -75,7 +57,6 @@ if [[ "$MORE" == "y" || "$MORE" == "Y" ]]; then inf "Then, save and exit.\nPress enter." read micro /etc/locale.gen ->>>>>>> a911136 (ok sorry (not) we're using micro now) fi inf "Generating selected locales." From e3be5d0771ad4b72d0a50f9ee4564378965880fc Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 14:25:35 -0400 Subject: [PATCH 13/33] Minor todos noted, and minor fs fix --- citrine.internal.sh | 13 +++++++------ continue.sh | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index ec93fbd..99714ee 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -104,7 +104,7 @@ echo "EFI=$EFI" dumptitle="Please confirm" if [[ "$EFI" == "yes" ]]; then - dump "This PC seems to *have* booted with UEFI. Press enter to confirmor Control+C to cancel" + dump "This PC seems to *have* booted with UEFI. Press enter to confirm, or Control+C to cancel" else dump "This PC seems to *not* have booted with UEFI. Press enter to aknowledge, or press Control+C if this seems wrong." fi @@ -145,7 +145,7 @@ if [[ "$MANUAL" == "no" ]]; then else if [[ "$EFI" == "yes" ]]; then inf "Initializing ${DISK} as EFI" - mkfs.vfat ${DISK}1 + mkfs.vfat -F32 ${DISK}1 mkfs.ext4 ${DISK}2 mount ${DISK}2 /mnt mkdir -p /mnt/efi @@ -159,7 +159,7 @@ if [[ "$MANUAL" == "no" ]]; then else clear - dumptitle="Read carefully." + dumptitle="Read carefully!" dump "You have chosen manual partitioning.\ We're going to drop to a shell for you to partition, but first, PLEASE READ these notes.\ @@ -201,16 +201,17 @@ ping -c 1 getcryst.al if [[ ! "$?" == "0" ]]; then dumptitle="Error!" - dump "It seems like this system can't reach the internet. Exiting." + dump "It seems like this system can't reach the internet. Failing here." + umount -l /mnt exit 1 fi inf "Setting up base Crystal System" -crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch dialog +crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch dialog if [[ ! "$?" == "0" ]]; then inf "CrystalStrap had some error. Retrying." - crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch dialog + crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch dialog fi if [[ "$EFI" == "yes" ]]; then diff --git a/continue.sh b/continue.sh index aa7f7a5..bb75b6f 100755 --- a/continue.sh +++ b/continue.sh @@ -32,6 +32,8 @@ msgbox(){ # -------------------------- clear + +# TODO: How might we make a list select of timezones? TZ="/usr/share/LMAO/XD" while [[ ! -f $TZ ]]; do msgbox "Pick a time zone (Format: America/New_York , Europe/London, etc)" @@ -48,6 +50,8 @@ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen echo "LANG=en_US.UTF-8" > /etc/locale.conf clear + +# Todo: List-select of locales somehow prompt "Do you need more locales than just en_US? (y/N)" echo "MORE=$response" MORE="$response" From 8f34ba8977a80ab4b6abcc6ecbe06db4e3618627 Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 14:33:24 -0400 Subject: [PATCH 14/33] hhngn fuck make --- Makefile | 7 ------- make.sh | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) delete mode 100644 Makefile create mode 100755 make.sh diff --git a/Makefile b/Makefile deleted file mode 100644 index ecefd82..0000000 --- a/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -install: - chmod +x *.sh - cp *.sh /usr/bin - mv /usr/bin/citrine.sh /usr/bin/citrine - mv /usr/bin/citrine.internal.sh /usr/bin/citrine.internal -test: install - citrine \ No newline at end of file diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..7981233 --- /dev/null +++ b/make.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +ins() { + chmod +x *.sh + cp *.sh /usr/bin + mv /usr/bin/citrine.sh /usr/bin/citrine + mv /usr/bin/citrine.internal.sh /usr/bin/citrine.internal +} + +testc() { + citrine +} + +if [[ "$1" == "" ]]; then + echo "./make.sh install - installs citrine" + echo "./make.sh test - (installs) then runs citrine" + exit 1 +fi + +if [[ "$1" == "install" ]]; then + ins +elif [[ "$1" == "test" ]]; then + ins + testc +fi \ No newline at end of file From a7e815bd3b0ce46b636f57e04435440129856ae6 Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 14:34:20 -0400 Subject: [PATCH 15/33] in case this is a live iso, make sure we've got dialog :sadge: --- make.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/make.sh b/make.sh index 7981233..ce031a7 100755 --- a/make.sh +++ b/make.sh @@ -1,6 +1,7 @@ #!/bin/bash ins() { + pacman -Sy dialog --noconfirm --needed chmod +x *.sh cp *.sh /usr/bin mv /usr/bin/citrine.sh /usr/bin/citrine From 248a880c2e77d7a442edb97b3bcb36ccb7eccbc9 Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 14:40:36 -0400 Subject: [PATCH 16/33] fix a few borked variables --- citrine.internal.sh | 4 ++-- continue.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 99714ee..8d48bd5 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -43,7 +43,7 @@ pacman-key --populate crystal yesno "Do you need a keyboard layout other than QWERTY US?" KBD="$yn" -echo "KBD=$response" +echo "KBD=$KBD" # TODO: layout select in dialog if [[ "$KBD" == "0" || "$KBD" == "0" ]]; then @@ -64,7 +64,7 @@ fi clear yesno "Would you like to partition manually?" -echo "PMODE=$response" +echo "PMODE=$yn" PMODE="$yn" dumptitle="System Disks" diff --git a/continue.sh b/continue.sh index bb75b6f..9f17971 100755 --- a/continue.sh +++ b/continue.sh @@ -37,7 +37,7 @@ clear TZ="/usr/share/LMAO/XD" while [[ ! -f $TZ ]]; do msgbox "Pick a time zone (Format: America/New_York , Europe/London, etc)" - PT="$response" + PT="$msgdat" TZ="/usr/share/zoneinfo/${PT}" done From 6c0fce0723621b1ce21976e82f8d37caa2feae98 Mon Sep 17 00:00:00 2001 From: Matt C Date: Wed, 20 Oct 2021 14:52:04 -0400 Subject: [PATCH 17/33] hhh fix y/n in chroot? --- continue.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/continue.sh b/continue.sh index 9f17971..7235978 100755 --- a/continue.sh +++ b/continue.sh @@ -17,7 +17,8 @@ prompt() { # --------------------------------- yn="" yesno() { - yn=$(dialog --title Citrine --yesno "$@" --stdout 10 80) + dialog --title Citrine --yesno "$@" --stdout 10 80 + yn=$(echo "?") } dumptitle="" @@ -146,7 +147,6 @@ pacman-key --populate crystal clear yesno "Would you like to install a DE/WM profile?" - echo "DEP=$yn" DEP="$yn" From 73ad0b6da96b0182ef9ff3bd05bdcb4c36f6a645 Mon Sep 17 00:00:00 2001 From: amy Date: Wed, 20 Oct 2021 23:48:21 +0200 Subject: [PATCH 18/33] completed dialog, its probably broken this is just a huge pain aaaaaaaaaaaaa --- citrine.internal.sh | 238 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 234 insertions(+), 4 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 8d48bd5..0497c92 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -17,7 +17,8 @@ prompt() { # --------------------------------- yn="" yesno() { - yn=$(dialog --title Citrine --yesno "$@" --stdout 10 80) + dialog --title Citrine --yesno "$@" 10 80 + yn=$? } dumptitle="" @@ -238,7 +239,236 @@ else echo ${DISK} > /mnt/diskn fi -arch-chroot /mnt /continue.sh 2>&1 | tee /mnt/var/log/citrine.chroot.log -rm /mnt/continue.sh -inf "Installation should now be complete." +clear + +TZ="/usr/share/place/holder" +while [[ ! -f $TZ ]]; do + msgbox "Pick a time zone (Format: America/New_York, Europe/London, etc)" + PT="$response" + TZ="/usr/share/zoneinfo/${PT}" +done + +arch-chroot /mnt ln-sf $TZ /etc/localtime +inf "Set TZ to ${TZ}" +inf "Syncing hardware offset" +arch-chroot /mnt hwclock --systohc + +echo "en_US.UTF-8 UTF-8" >> /mnt/etc/locale.gen +echo "LANG=en_US.UTF-8" > /mnt/etc/locale.conf + +clear +yesno "Do you need more locales than just en_US?" +echo "More=$yn" +More="$yn" + +if [[ "$MORE" == "0" ]]; then + msgbox "Preferred editor" + PRGRM="$msgdat" + echo "PGRM=$msgdat" + if [[ -x "$(command -v ${PGRM})" ]]; then + inf "Attempting to install ${PGRM}" + pacman -S ${PGRM} --noconfirm + fi + dumptitle="Read carefully." + dump "When we open the file, please remove the leading # before any locales you need.\ + Then, save and exit." + ${PGRM} /mnt/etc/locale.gen +fi + +inf "Generating selected locales." +arch-chroot /mnt locale-gen + +echo +echo +inf "en_US was set as system primary." +inf "After install, you can edit /etc/locale.conf to change the primary if desired." +inf "Press enter" +prompt "" + +if [[ -f /mnt/keymap ]]; + inf "You set a custom keymap. We're making that change to the new system, too." + KMP=$(cat /keymap) + rm /mnt/keymap + echo "KEYMAP=${KMP}" > /mnt/etc/vconsole.conf +fi + +clear +msgbox "Enter the system hostname" +HOSTNAME="$msgdat" +echo ${HOSTNAME} > /mnt/etc/hostname +echo "127.0.0.1 localhost" > /mnt/etc/hosts + +yesno "Would you like IPV6?" +IPS="$yn" + +if [[ "$IPS" == "0" ]]; then + echo "::1 localhost" >> /mnt/etc/hosts +fi +echo "127.0.0.1 ${HOSTNAME}.localdomain ${HOSTNAME}" >> /mnt/etc/hosts + +clear +inf "Set a password for root" +done="nope" +while [[ "$done" == "nope" ]]; do + arch-chroot /mnt passwd + if [[ "$(echo $?)" == "0" ]]; then + done="yep" + fi +done + +msgbox "Your username" +UN="$msgdat" +arch-chroot /mnt "useradd -m ${UN} && usermod -aG wheel ${UN}" +inf "Set password for ${UN}" +done="nope" +while [[ "$done" == "nope" ]]; do + arch-chroot /mnt "passwd ${UN}" + if [[ "$(echo $?)" == "0" ]]; then + done="yep" + fi +done +echo >> /mnt/etc/sudoers +echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers +echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers + +if [[ -f /mnt/efimode ]]; then + rm /mnt/efimode + arch-chroot /mnt "grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal" +else + DISK=$(cat /mnt/diskn) + rm /mnt/diskn + grub-install ${DISK} +fi + +arch-chroot /mnt "grub-mkconfig -o /boot/grub/grub.cfg && systemctl enable NetworkManager && pacman-key --init && pacman-key --populate archlinux && pacman-key --populate crystal" + +clear + +yesno "Would you like to install a DE/WM profile?" +echo "DEP=$yn" +DEP="$yn" + +arch-chroot /mnt "pacman -Sy --quiet --noconfirm" + +if [[ "$DEP" == "0" ]]; then + inf "--- Desktop Environments ---" + inf "- Budgie" + inf "- Cinnamon" + inf "- Deepin" + inf "- Enlightenment (note: very DIY. Read Arch Wiki)" + inf "- GNOME" + # Flashback seems to need some work + #inf "- (GNOME) Flashback" + inf "- KDE" + inf "- LXDE" + inf "- LXQt" + inf "- Mate" + inf "- Cutefish" + inf "- Xfce" + inf "- UKUI (note: very poorly documented. In english, anyway)" + inf "--- Window Managers ---" + inf "- i3" + inf "(We'll add more as people ask)" + inf "Please enter exactly as shown." + prompt "" + echo "DE=$response" + DE="$response" + DM="" + case "$DE" in + "Budgie") + arch-chroot /mnt "pacman -S --quiet --noconfirm budgie-desktop gnome" + DM="gdm" + ;; + "Cinnamon") + arch-chroot /mnt "pacman -S --quiet --noconfirm cinnamon" + DM="gdm" + ;; + "Deepin") + arch-chroot /mnt "pacman -S --quiet --noconfirm deepin deepin-extra" + DM="lightdm" + ;; + "Gnome" | "GNOME" | "gnome") + arch-chroot /mnt "pacman -S --quiet --noconfirm gnome gnome-extra chrome-gnome-shell" + DM="gdm" + ;; + "KDE" | "Kde" | "kde") + arch-chroot /mnt "pacman -S --quiet --noconfirm plasma kde-applications sddm" + DM="sddm" + ;; + "LXDE" | "lxde" | "Lxde") + arch-chroot /mnt "pacman -S --quiet --noconfirm lxde" + DM="lxdm" + ;; + "LXQt" | "lxqt" | "Lxqt" | "LXQT") + arch-chroot /mnt "pacman -S --quiet --noconfirm lxqt breeze-icons xorg" + DM="sddm" + ;; + "Mate" | "mate") + arch-chroot /mnt "pacman -S --quiet --noconfirm mate mate-extra mate-applet-dock mate-applet-streamer" + DM="gdm" + ;; + "Xfce" | "xfce") + arch-chroot /mnt "pacman -S --quiet --noconfirm xfce4 xfce4-goodies" + DM="sddm" + "Cutefish" |"cutefish") + arch-chroot /mnt "pacman -S --quiet --noconfirm cutefish" + DM="sddm" + "Enlightenment" | "enlightenment") + arch-chroot /mnt "pacman -S --quiet --noconfirm enlightenment terminology" + ;; +esac + +if [[ "$DM" == "" ]]; then + inf "Your selected DE/WM doesn't have a standard display manager. Enter one of the below names, or leave blank for none" + inf "- gdm" + inf "- sddm" + inf "- lightdm (you'll need a greeter package. See Arch Wiki)" + inf "- (you can type another Arch package name if you have one in mind)" + inf "- [blank] for none" + prompt "" + ND="$response" + echo "ND=$ND" + if [[ "$ND" != "" ]]; then + inf "Ok, we'll install $ND" + DM="$ND" + arch-chroot /mnt "pacman -S --quiet --noconfirm $DM" + else + inf "Ok, not installing a display manager." + fi +else + arch-chroot /mnt "pacman -S --quiet --noconfirm $DM" +fi +if [[ "$DM" != "" ]]; then + prompt "Would you like to enable ${DM} for ${DE}? (Y/n)" + useDM="$response" + if [[ "$useDM" != "n" ]]; then + arch-chroot /mnt "systemctl enable ${DM}" + if [[ "$DE" == "Deepin" ]]; then + sed -i 's/lightdm-gtk-greeter/lightdm-deepin-greeter/g' /mnt/etc/lightdm/lightdm.conf + fi + fi + fi +fi + +prompt "Would you like to add more packages? (Y/n)" +MP="$response" +if [["$MP" != "n" ]]; then + prompt "Would you like to use a URL to a package list? (Y/n)" + OL="$response" + if [["$OL" == "n" ]]; then + prompt "Write package names" + PKGNS="$response" + inf "Installing: $PKGNS" + arch-chroot /mnt "ame -S ${PKGNS}" + else + prompt "URL to package list" + SRC="$response" + PKGS="$(curl ${SRC})" + for PKG in PKGS; do + arch-chroot /mnt "ame -S ${PKG}" + done + fi +fi + +inf "Installation should now be complete." \ No newline at end of file From 39dbcaa584f488a8d6532557fa9282f1167be67d Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 12:29:01 +0200 Subject: [PATCH 19/33] fixed all issues encountered while testing --- citrine.internal.sh | 49 +++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 0497c92..e897229 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -245,7 +245,7 @@ clear TZ="/usr/share/place/holder" while [[ ! -f $TZ ]]; do msgbox "Pick a time zone (Format: America/New_York, Europe/London, etc)" - PT="$response" + PT="$msgdat" TZ="/usr/share/zoneinfo/${PT}" done @@ -319,11 +319,12 @@ done msgbox "Your username" UN="$msgdat" -arch-chroot /mnt "useradd -m ${UN} && usermod -aG wheel ${UN}" +arch-chroot /mnt useradd -m ${UN} +arch-chroot /mnt usermod -aG wheel ${UN} inf "Set password for ${UN}" done="nope" while [[ "$done" == "nope" ]]; do - arch-chroot /mnt "passwd ${UN}" + arch-chroot /mnt passwd ${UN} if [[ "$(echo $?)" == "0" ]]; then done="yep" fi @@ -334,14 +335,18 @@ echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ -f /mnt/efimode ]]; then rm /mnt/efimode - arch-chroot /mnt "grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal" + arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal else DISK=$(cat /mnt/diskn) rm /mnt/diskn grub-install ${DISK} fi -arch-chroot /mnt "grub-mkconfig -o /boot/grub/grub.cfg && systemctl enable NetworkManager && pacman-key --init && pacman-key --populate archlinux && pacman-key --populate crystal" +arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg +arch-chroot /mnt systemctl enable NetworkManager +arch-chroot pacman-key --init +arch-chroot pacman-key --populate archlinux +arch-chroot pacman-key --populate crystal clear @@ -349,7 +354,7 @@ yesno "Would you like to install a DE/WM profile?" echo "DEP=$yn" DEP="$yn" -arch-chroot /mnt "pacman -Sy --quiet --noconfirm" +arch-chroot /mnt pacman -Sy --quiet --noconfirm if [[ "$DEP" == "0" ]]; then inf "--- Desktop Environments ---" @@ -377,45 +382,45 @@ if [[ "$DEP" == "0" ]]; then DM="" case "$DE" in "Budgie") - arch-chroot /mnt "pacman -S --quiet --noconfirm budgie-desktop gnome" + arch-chroot /mnt pacman -S --quiet --noconfirm budgie-desktop gnome DM="gdm" ;; "Cinnamon") - arch-chroot /mnt "pacman -S --quiet --noconfirm cinnamon" + arch-chroot /mnt pacman -S --quiet --noconfirm cinnamon DM="gdm" ;; "Deepin") - arch-chroot /mnt "pacman -S --quiet --noconfirm deepin deepin-extra" + arch-chroot /mnt pacman -S --quiet --noconfirm deepin deepin-extra DM="lightdm" ;; "Gnome" | "GNOME" | "gnome") - arch-chroot /mnt "pacman -S --quiet --noconfirm gnome gnome-extra chrome-gnome-shell" + arch-chroot /mnt pacman -S --quiet --noconfirm gnome gnome-extra chrome-gnome-shell DM="gdm" ;; "KDE" | "Kde" | "kde") - arch-chroot /mnt "pacman -S --quiet --noconfirm plasma kde-applications sddm" + arch-chroot /mnt pacman -S --quiet --noconfirm plasma kde-applications sddm DM="sddm" ;; "LXDE" | "lxde" | "Lxde") - arch-chroot /mnt "pacman -S --quiet --noconfirm lxde" + arch-chroot /mnt pacman -S --quiet --noconfirm lxde DM="lxdm" ;; "LXQt" | "lxqt" | "Lxqt" | "LXQT") - arch-chroot /mnt "pacman -S --quiet --noconfirm lxqt breeze-icons xorg" + arch-chroot /mnt pacman -S --quiet --noconfirm lxqt breeze-icons xorg DM="sddm" ;; "Mate" | "mate") - arch-chroot /mnt "pacman -S --quiet --noconfirm mate mate-extra mate-applet-dock mate-applet-streamer" + arch-chroot /mnt pacman -S --quiet --noconfirm mate mate-extra mate-applet-dock mate-applet-streamer DM="gdm" ;; "Xfce" | "xfce") - arch-chroot /mnt "pacman -S --quiet --noconfirm xfce4 xfce4-goodies" + arch-chroot /mnt pacman -S --quiet --noconfirm xfce4 xfce4-goodies DM="sddm" "Cutefish" |"cutefish") - arch-chroot /mnt "pacman -S --quiet --noconfirm cutefish" + arch-chroot /mnt pacman -S --quiet --noconfirm cutefish DM="sddm" "Enlightenment" | "enlightenment") - arch-chroot /mnt "pacman -S --quiet --noconfirm enlightenment terminology" + arch-chroot /mnt pacman -S --quiet --noconfirm enlightenment terminology ;; esac @@ -432,18 +437,18 @@ if [[ "$DM" == "" ]]; then if [[ "$ND" != "" ]]; then inf "Ok, we'll install $ND" DM="$ND" - arch-chroot /mnt "pacman -S --quiet --noconfirm $DM" + arch-chroot /mnt pacman -S --quiet --noconfirm $DM else inf "Ok, not installing a display manager." fi else - arch-chroot /mnt "pacman -S --quiet --noconfirm $DM" + arch-chroot /mnt pacman -S --quiet --noconfirm $DM fi if [[ "$DM" != "" ]]; then prompt "Would you like to enable ${DM} for ${DE}? (Y/n)" useDM="$response" if [[ "$useDM" != "n" ]]; then - arch-chroot /mnt "systemctl enable ${DM}" + arch-chroot /mnt systemctl enable ${DM} if [[ "$DE" == "Deepin" ]]; then sed -i 's/lightdm-gtk-greeter/lightdm-deepin-greeter/g' /mnt/etc/lightdm/lightdm.conf fi @@ -460,13 +465,13 @@ if [["$MP" != "n" ]]; then prompt "Write package names" PKGNS="$response" inf "Installing: $PKGNS" - arch-chroot /mnt "ame -S ${PKGNS}" + arch-chroot /mnt ame -S ${PKGNS} else prompt "URL to package list" SRC="$response" PKGS="$(curl ${SRC})" for PKG in PKGS; do - arch-chroot /mnt "ame -S ${PKG}" + arch-chroot /mnt ame -S ${PKG} done fi fi From 617e6c611f3ff64f36cdb665fed7badce377f07a Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 12:32:19 +0200 Subject: [PATCH 20/33] line 289 was missing a then --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index e897229..9674f63 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -286,7 +286,7 @@ inf "After install, you can edit /etc/locale.conf to change the primary if desir inf "Press enter" prompt "" -if [[ -f /mnt/keymap ]]; +if [[ -f /mnt/keymap ]]; then inf "You set a custom keymap. We're making that change to the new system, too." KMP=$(cat /keymap) rm /mnt/keymap From 666ba53ef2c3b06bd55e4a4a352621bf77b8448a Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 12:34:30 +0200 Subject: [PATCH 21/33] fix syntax error at line 419 --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 9674f63..eee9c6d 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -416,7 +416,7 @@ if [[ "$DEP" == "0" ]]; then "Xfce" | "xfce") arch-chroot /mnt pacman -S --quiet --noconfirm xfce4 xfce4-goodies DM="sddm" - "Cutefish" |"cutefish") + "Cutefish" | "cutefish") arch-chroot /mnt pacman -S --quiet --noconfirm cutefish DM="sddm" "Enlightenment" | "enlightenment") From dae7f11504c97de9bffe55dadb7ec6a53b30a5dd Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 12:36:44 +0200 Subject: [PATCH 22/33] actually fix syntax error at line 419 --- citrine.internal.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/citrine.internal.sh b/citrine.internal.sh index eee9c6d..1a97b81 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -416,9 +416,11 @@ if [[ "$DEP" == "0" ]]; then "Xfce" | "xfce") arch-chroot /mnt pacman -S --quiet --noconfirm xfce4 xfce4-goodies DM="sddm" + ;; "Cutefish" | "cutefish") arch-chroot /mnt pacman -S --quiet --noconfirm cutefish DM="sddm" + ;; "Enlightenment" | "enlightenment") arch-chroot /mnt pacman -S --quiet --noconfirm enlightenment terminology ;; From 36c59c9d17686856edd6c312f1d6d0abe542cd1a Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 12:43:42 +0200 Subject: [PATCH 23/33] one missing space can mess up the whole program... --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 1a97b81..431776d 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -460,7 +460,7 @@ fi prompt "Would you like to add more packages? (Y/n)" MP="$response" -if [["$MP" != "n" ]]; then +if [[ "$MP" != "n" ]]; then prompt "Would you like to use a URL to a package list? (Y/n)" OL="$response" if [["$OL" == "n" ]]; then From 0fd6154ce4005c2513bb6c2939cb0cc9539c028e Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 13:11:21 +0200 Subject: [PATCH 24/33] once again, a single missing space breaks it --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 431776d..bcea2aa 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -463,7 +463,7 @@ MP="$response" if [[ "$MP" != "n" ]]; then prompt "Would you like to use a URL to a package list? (Y/n)" OL="$response" - if [["$OL" == "n" ]]; then + if [[ "$OL" == "n" ]]; then prompt "Write package names" PKGNS="$response" inf "Installing: $PKGNS" From 0e9788496eca548010102a98950ce1ef534dacf4 Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 21 Oct 2021 14:21:29 +0200 Subject: [PATCH 25/33] change efi mount point as specified in #4 and remove some tempfiles created by citrine, as they're not needed anymore --- citrine.internal.sh | 48 ++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index bcea2aa..db609c9 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -136,8 +136,8 @@ if [[ "$MANUAL" == "no" ]]; then mkfs.vfat ${DISK}p1 mkfs.ext4 ${DISK}p2 mount ${DISK}p2 /mnt - mkdir -p /mnt/efi - mount ${DISK}p1 /mnt/efi + mkdir -p /mnt/boot/efi + mount ${DISK}p1 /mnt/boot/efi else inf "Initializing ${DISK} as NVME MBR" mkfs.ext4 ${DISK}p1 @@ -149,8 +149,8 @@ if [[ "$MANUAL" == "no" ]]; then mkfs.vfat -F32 ${DISK}1 mkfs.ext4 ${DISK}2 mount ${DISK}2 /mnt - mkdir -p /mnt/efi - mount ${DISK}1 /mnt/efi + mkdir -p /mnt/boot/efi + mount ${DISK}1 /mnt/boot/efi else inf "Initializing ${DISK} as MBR" mkfs.ext4 ${DISK}1 @@ -167,10 +167,10 @@ else Before you exit the shell, make sure to format and mount a partition for / at /mnt." if [[ "$EFI" == "yes" ]]; then - mkdir -p /mnt/efi + mkdir -p /mnt/boot/efi dump "Additionally, since this machine was booted with UEFI, please make sure to make a 200MB or greater partition\ - of type VFAT and mount it at /mnt/efi" + of type VFAT and mount it at /mnt/boot/efi" else msgbox "Please give me the full path of the device you're planning to partition (needed for bootloader installation later)\ .. Example: /dev/sda" @@ -209,10 +209,10 @@ fi inf "Setting up base Crystal System" -crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch dialog +crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch if [[ ! "$?" == "0" ]]; then inf "CrystalStrap had some error. Retrying." - crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch dialog + crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch fi if [[ "$EFI" == "yes" ]]; then @@ -224,22 +224,8 @@ fi sed -i 's/\/path\/to\/gfxtheme/\/usr\/share\/grub\/themes\/crystal\/theme.txt/g' /mnt/etc/default/grub sed -i 's/#GRUB_THEME/GRUB_THEME/g' /mnt/etc/default/grub -cp /usr/bin/continue.sh /mnt/. -chmod +x /mnt/continue.sh - genfstab -U /mnt > /mnt/etc/fstab -if [[ "$KBD" == "y" || "$KBD" == "Y" ]]; then - echo ${KMP} >> /mnt/keymap -fi - -if [[ "$EFI" == "yes" ]]; then - touch /mnt/efimode -else - echo ${DISK} > /mnt/diskn -fi - - clear TZ="/usr/share/place/holder" @@ -286,10 +272,7 @@ inf "After install, you can edit /etc/locale.conf to change the primary if desir inf "Press enter" prompt "" -if [[ -f /mnt/keymap ]]; then - inf "You set a custom keymap. We're making that change to the new system, too." - KMP=$(cat /keymap) - rm /mnt/keymap +if [[ "$KBD" == "y" || "$KBD" == "Y" ]]; then echo "KEYMAP=${KMP}" > /mnt/etc/vconsole.conf fi @@ -333,12 +316,9 @@ echo >> /mnt/etc/sudoers echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers -if [[ -f /mnt/efimode ]]; then - rm /mnt/efimode +if [[ "$EFI" == "yes" ]]; then arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal else - DISK=$(cat /mnt/diskn) - rm /mnt/diskn grub-install ${DISK} fi @@ -372,8 +352,6 @@ if [[ "$DEP" == "0" ]]; then inf "- Cutefish" inf "- Xfce" inf "- UKUI (note: very poorly documented. In english, anyway)" - inf "--- Window Managers ---" - inf "- i3" inf "(We'll add more as people ask)" inf "Please enter exactly as shown." prompt "" @@ -381,15 +359,15 @@ if [[ "$DEP" == "0" ]]; then DE="$response" DM="" case "$DE" in - "Budgie") + "Budgie" | "budgie") arch-chroot /mnt pacman -S --quiet --noconfirm budgie-desktop gnome DM="gdm" ;; - "Cinnamon") + "Cinnamon" | "cinnamon") arch-chroot /mnt pacman -S --quiet --noconfirm cinnamon DM="gdm" ;; - "Deepin") + "Deepin" | "deepin") arch-chroot /mnt pacman -S --quiet --noconfirm deepin deepin-extra DM="lightdm" ;; From d48e9db09ca209f8055013f769e3f84f51cd6221 Mon Sep 17 00:00:00 2001 From: amy Date: Tue, 26 Oct 2021 22:16:38 +0200 Subject: [PATCH 26/33] installing grub while in chroot totally doesnt make any issues at all(fixed) --- citrine.internal.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index db609c9..b6bfd8d 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -217,7 +217,7 @@ fi if [[ "$EFI" == "yes" ]]; then inf "Installing EFI support package" - crystalstrap /mnt efibootmgr + crystalstrap /mnt efibootmgr refind fi # Grub theme @@ -317,7 +317,7 @@ echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then - arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal + grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal else grub-install ${DISK} fi From 227b473588422fde2557432b5b6cd8b3e4fb14f2 Mon Sep 17 00:00:00 2001 From: amy Date: Tue, 26 Oct 2021 22:48:23 +0200 Subject: [PATCH 27/33] replaced grub with refind and syslinux(syslinux wont work until we have it rebuild in the crystal repo) as said in #6 --- citrine.internal.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index b6bfd8d..55ba54c 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -209,21 +209,20 @@ fi inf "Setting up base Crystal System" -crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch +crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch if [[ ! "$?" == "0" ]]; then inf "CrystalStrap had some error. Retrying." - crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager grub crystal-grub-theme man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch + crystalstrap /mnt base linux linux-firmware systemd-sysvcompat networkmanager man-db man-pages texinfo micro sudo curl archlinux-keyring neofetch fi if [[ "$EFI" == "yes" ]]; then inf "Installing EFI support package" crystalstrap /mnt efibootmgr refind +else + inf "Installing Syslinux bootloader" + crystalstrap /mnt Syslinux fi -# Grub theme -sed -i 's/\/path\/to\/gfxtheme/\/usr\/share\/grub\/themes\/crystal\/theme.txt/g' /mnt/etc/default/grub -sed -i 's/#GRUB_THEME/GRUB_THEME/g' /mnt/etc/default/grub - genfstab -U /mnt > /mnt/etc/fstab clear @@ -317,12 +316,11 @@ echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then - grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Crystal + arch-chroot /mnt refind-install else - grub-install ${DISK} + arch-chroot /mnt syslinux-install_update -i -a -m fi -arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg arch-chroot /mnt systemctl enable NetworkManager arch-chroot pacman-key --init arch-chroot pacman-key --populate archlinux From 2dc21aec5e32b18abd74421b47a64a9fdeaaa272 Mon Sep 17 00:00:00 2001 From: amy Date: Wed, 27 Oct 2021 18:28:43 +0200 Subject: [PATCH 28/33] change syslinux install part to always get the modified syslinux install script, wont have to bother with repackaging syslinux like that --- citrine.internal.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/citrine.internal.sh b/citrine.internal.sh index 55ba54c..a894554 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -318,6 +318,7 @@ echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then arch-chroot /mnt refind-install else + arch-chroot /mnt wget https://git.getcryst.al/crystal/Syslinux_install_script/raw/branch/master/syslinux-install_update -O /usr/bin/syslinux-install_update arch-chroot /mnt syslinux-install_update -i -a -m fi From 0af53a41429eace6d65895598999610bfae7cba7 Mon Sep 17 00:00:00 2001 From: amy Date: Wed, 27 Oct 2021 18:34:54 +0200 Subject: [PATCH 29/33] fixed typo when installing syslinux --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index a894554..becf39e 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -220,7 +220,7 @@ if [[ "$EFI" == "yes" ]]; then crystalstrap /mnt efibootmgr refind else inf "Installing Syslinux bootloader" - crystalstrap /mnt Syslinux + crystalstrap /mnt syslinux fi genfstab -U /mnt > /mnt/etc/fstab From 3643a1d3ad33feb74d90cff58dde88b16a400b03 Mon Sep 17 00:00:00 2001 From: amy Date: Wed, 27 Oct 2021 18:40:32 +0200 Subject: [PATCH 30/33] change wget to curl --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index becf39e..734bc81 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -318,7 +318,7 @@ echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then arch-chroot /mnt refind-install else - arch-chroot /mnt wget https://git.getcryst.al/crystal/Syslinux_install_script/raw/branch/master/syslinux-install_update -O /usr/bin/syslinux-install_update + arch-chroot /mnt curl https://git.getcryst.al/crystal/Syslinux_install_script/raw/branch/master/syslinux-install_update -o /usr/bin/syslinux-install_update arch-chroot /mnt syslinux-install_update -i -a -m fi From 456ad041f9e6e5d18623a3a8a73ce6e7bf5f0a3b Mon Sep 17 00:00:00 2001 From: amy Date: Wed, 27 Oct 2021 21:52:29 +0200 Subject: [PATCH 31/33] fixed issue with wrong automated refind config --- citrine.internal.sh | 3 +++ refind_linux.conf | 1 + 2 files changed, 4 insertions(+) create mode 100644 refind_linux.conf diff --git a/citrine.internal.sh b/citrine.internal.sh index 734bc81..0ba187b 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -316,7 +316,10 @@ echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then + root="$(findmnt -n -o SOURCE / | awk 'BEGIN { FS = "/" }; { print $3 }')" arch-chroot /mnt refind-install + echo '"Crystal Linux" "rw root=/dev/placeholder"' > /mnt/boot/refind_linux.conf + sed -i "s/placeholder/$root/" /mnt/boot/refind_linux.conf else arch-chroot /mnt curl https://git.getcryst.al/crystal/Syslinux_install_script/raw/branch/master/syslinux-install_update -o /usr/bin/syslinux-install_update arch-chroot /mnt syslinux-install_update -i -a -m diff --git a/refind_linux.conf b/refind_linux.conf new file mode 100644 index 0000000..da6dce8 --- /dev/null +++ b/refind_linux.conf @@ -0,0 +1 @@ +"Crystal Linux" "rw root=/dev/sdc" From 8433260bbcd7bcb1b5873c3de486072497820133 Mon Sep 17 00:00:00 2001 From: amy Date: Thu, 28 Oct 2021 13:29:07 +0200 Subject: [PATCH 32/33] final fix for refind installation, actually fully works now --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index 0ba187b..ddb9ce7 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -316,7 +316,7 @@ echo "# Enabled by Crystalinstall (citrine)" >> /mnt/etc/sudoers echo "%wheel ALL=(ALL) ALL" >> /mnt/etc/sudoers if [[ "$EFI" == "yes" ]]; then - root="$(findmnt -n -o SOURCE / | awk 'BEGIN { FS = "/" }; { print $3 }')" + root="$(findmnt -n -o SOURCE /mnt/ | awk 'BEGIN { FS = "/" }; { print $3 }')" arch-chroot /mnt refind-install echo '"Crystal Linux" "rw root=/dev/placeholder"' > /mnt/boot/refind_linux.conf sed -i "s/placeholder/$root/" /mnt/boot/refind_linux.conf From 8a98542bf5b913b6083e9e24fdd11a2f62bbe9af Mon Sep 17 00:00:00 2001 From: jasio Date: Sun, 31 Oct 2021 19:10:30 +0000 Subject: [PATCH 33/33] Update 'citrine.internal.sh' --- citrine.internal.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/citrine.internal.sh b/citrine.internal.sh index ddb9ce7..ffd03a6 100755 --- a/citrine.internal.sh +++ b/citrine.internal.sh @@ -181,7 +181,7 @@ else dumptitle="Citrine" while [[ "$CONFDONE" == "NOPE" ]]; do - dump "Press enter to go to a shell. (ZSH)" + dump "Press enter a shell. (ZSH)" zsh yesno "All set (and partitions mounted?)" echo "STAT=$yn"