use fun output format

artix
Matt C 3 years ago
parent d1872842b9
commit a8f1b9a1f3

@ -1,72 +1,86 @@
#!/bin/bash #!/bin/bash
inf() {
echo -e "\e[1m♠ $@\e[0m"
}
err() {
echo -e "\e[1m\e[31m✗ $@\e[0m"
}
response=""
prompt() {
printf "\e[1m\e[33m$@ : \e[0m"
read response
}
TZ="/usr/share/zoneinfo/FUCK/OFF" TZ="/usr/share/zoneinfo/FUCK/OFF"
while [[ ! -f $TZ ]]; do while [[ ! -f $TZ ]]; do
printf "Pick a time zone (Format: America/New_York , Europe/London, etc): " prompt "Pick a time zone (Format: America/New_York , Europe/London, etc)"
read PT PT="$response"
TZ="/usr/share/zoneinfo/${PT}" TZ="/usr/share/zoneinfo/${PT}"
done done
ln -sf $TZ /etc/localtime ln -sf $TZ /etc/localtime
echo "Set TZ to ${TZ}" inf "Set TZ to ${TZ}"
echo "Syncing hardware offset" inf "Syncing hardware offset"
hwclock --systohc hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf echo "LANG=en_US.UTF-8" > /etc/locale.conf
printf "Do you need more locales than just en_US? (y/N): " prompt "Do you need more locales than just en_US? (y/N)"
read MORE MORE="$response"
if [[ "$MORE" == "y" || "$MORE" == "Y" ]]; then if [[ "$MORE" == "y" || "$MORE" == "Y" ]]; then
printf "Preferred editor: " prompt "Preferred editor"
read PGRM PGRM="$response"
if [[ -x "$(command -v ${PGRM})" ]]; then if [[ -x "$(command -v ${PGRM})" ]]; then
echo "Attempting to install ${PGRM}" inf "Attempting to install ${PGRM}"
pacman -Sy ${PGRM} --noconfirm pacman -Sy ${PGRM} --noconfirm
fi fi
echo "When we open the file, please remove the leading # before any locales you need." inf "When we open the file, please remove the leading # before any locales you need."
echo "Then, save and exit.\nPress enter." inf "Then, save and exit.\nPress enter."
read read
${PGRM} /etc/locale.gen ${PGRM} /etc/locale.gen
fi fi
echo "Generating selected locales." inf "Generating selected locales."
locale-gen locale-gen
echo echo
echo echo
echo "en_US was set as system primary. After install, you can edit /etc/locale.conf to change the primary if desired." inf "en_US was set as system primary. After install, you can edit /etc/locale.conf to change the primary if desired."
echo "Press enter" inf "Press enter"
read prompt ""
if [[ -f /keymap ]]; then if [[ -f /keymap ]]; then
echo "You set a custom keymap. We're making that change to the new system, too." inf "You set a custom keymap. We're making that change to the new system, too."
KMP=$(cat /keymap) KMP=$(cat /keymap)
rm /keymap rm /keymap
echo "KEYMAP=${KMP}" > /etc/vconsole.conf echo "KEYMAP=${KMP}" > /etc/vconsole.conf
fi fi
printf "System hostname: " prompt "System hostname"
read HOSTNAME HOSTNAME="$response"
echo ${HOSTNAME} > /etc/hostname echo ${HOSTNAME} > /etc/hostname
echo "127.0.0.1 localhost" > /etc/hosts echo "127.0.0.1 localhost" > /etc/hosts
printf "Would you like IPV6? (y/N)" prompt "Would you like IPV6? (y/N)"
read IPS IPS="$response"
if [[ "$IPS" == "y" || "$IPS" == "Y" ]]; then if [[ "$IPS" == "y" || "$IPS" == "Y" ]]; then
echo "::1 localhost" >> /etc/hosts echo "::1 localhost" >> /etc/hosts
fi fi
echo "127.0.1.1 ${HOSTNAME}.localdomain ${HOSTNAME}" >> /etc/hosts echo "127.0.1.1 ${HOSTNAME}.localdomain ${HOSTNAME}" >> /etc/hosts
echo "Password for root" inf "Password for root"
passwd passwd
printf "Your username: " prompt "Your username"
read UN UN="$response"
useradd -m ${UN} useradd -m ${UN}
usermod -aG wheel ${UN} usermod -aG wheel ${UN}
echo "Set password for ${UN}" inf "Set password for ${UN}"
passwd ${UN} passwd ${UN}
echo >> /etc/sudoers echo >> /etc/sudoers
echo "# Enabled by Crystalinstall" >> /etc/sudoers echo "# Enabled by Crystalinstall" >> /etc/sudoers
@ -88,16 +102,16 @@ systemctl enable NetworkManager
pacman-key --init pacman-key --init
pacman-key --populate archlinux pacman-key --populate archlinux
printf "Would you like to install a DE profile? (y/N): " prompt "Would you like to install a DE profile? (y/N)"
read DEP DEP="$response"
if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then
echo "- KDE" inf "- KDE"
echo "- GNOME" inf "- GNOME"
echo "- i3" inf "- i3"
echo "(We'll add more as people ask)" inf "(We'll add more as people ask)"
printf ": " prompt ""
read DE DE="$response"
if [[ "$DE" == "KDE" ]]; then if [[ "$DE" == "KDE" ]]; then
pacman -Sy --noconfirm plasma kde-applications sddm pacman -Sy --noconfirm plasma kde-applications sddm
@ -106,19 +120,19 @@ if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then
pacman -Sy --noconfirm gnome gnome-extra pacman -Sy --noconfirm gnome gnome-extra
DM="gdm" DM="gdm"
elif [[ "$DE" == "i3" ]]; then elif [[ "$DE" == "i3" ]]; then
echo "Choose either i3 or i3-gaps in below prompt. Rest of group is your preference (or not" inf "Choose either i3 or i3-gaps in below prompt. Rest of group is your preference (or not"
echo "Press enter" inf "Press enter"
read prompt ""
pacman -Sy i3 xorg-xinit xorg-server pacman -Sy i3 xorg-xinit xorg-server
printf "Would you like a display manager? If so, provide the package name: " prompt "Would you like a display manager? If so, provide the package name"
read ND ND="$response"
if [[ "$ND" != "" ]]; then if [[ "$ND" != "" ]]; then
echo "Ok, we'll install $ND" inf "Ok, we'll install $ND"
DM="$ND" DM="$ND"
pacman -Sy --noconfirm $DM pacman -Sy --noconfirm $DM
else else
echo "Ok, not installing a display manager." inf "Ok, not installing a display manager."
echo "We're setting up a default .xinitrc for you, though" inf "We're setting up a default .xinitrc for you, though"
echo "exec i3" > /home/${UN}/.xinitrc echo "exec i3" > /home/${UN}/.xinitrc
chown $UN:$UN /home/${UN}/.xinitrc chown $UN:$UN /home/${UN}/.xinitrc
chmod +x /home/${UN}/.xinitrc chmod +x /home/${UN}/.xinitrc
@ -127,20 +141,20 @@ if [[ "$DEP" == "y" || "$DEP" == "Y" ]]; then
fi fi
if [[ "$DM" != "" ]]; then if [[ "$DM" != "" ]]; then
printf "Would you like to enable ${DM} for ${DE}? (Y/n)" prompt "Would you like to enable ${DM} for ${DE}? (Y/n)"
read useDM useDM="$response"
if [[ "$useDM" != "n" ]]; then if [[ "$useDM" != "n" ]]; then
systemctl enable ${DM} systemctl enable ${DM}
fi fi
fi fi
fi fi
printf "Would you like to add more packages? (Y/n): " prompt "Would you like to add more packages? (Y/n)"
read MP MP="$response"
if [[ "$MP" != "n" ]]; then if [[ "$MP" != "n" ]]; then
printf "Write package names: " prompt "Write package names"
read PKGNS PKGNS="$response"
pacman -Sy --noconfirm ${PKGNS} pacman -Sy --noconfirm ${PKGNS}
fi fi
echo "Installation complete" inf "Installation complete"

@ -1,56 +1,70 @@
#!/bin/bash #!/bin/bash
inf() {
echo -e "\e[1m♠ $@\e[0m"
}
err() {
echo -e "\e[1m\e[31m✗ $@\e[0m"
}
response=""
prompt() {
printf "\e[1m\e[33m$@ : \e[0m"
read response
}
if [[ "$EUID" != "0" ]]; then if [[ "$EUID" != "0" ]]; then
echo "Run as root" err "Run as root"
exit 1 exit 1
fi fi
printf "Do you need a keyboard layout other than standard US? (y/N): " prompt "Do you need a keyboard layout other than standard US? (y/N)"
read KBD KBD="$response"
if [[ "$KBD" == "y" || "$KBD" == "Y" ]]; then if [[ "$KBD" == "y" || "$KBD" == "Y" ]]; then
echo "We're going to show the list of keymaps in less. Do you know how to exit less? (Y/n): " prompt "We're going to show the list of keymaps in less. Do you know how to exit less? (Y/n)"
read UL UL="$response"
if [[ "$UL" == "n" ]]; then if [[ "$UL" == "n" ]]; then
echo "Once we enter less, use arrows to scroll, and q to quit once you've found the right file." inf "Once we enter less, use arrows to scroll, and q to quit once you've found the right file."
echo "Press enter to go" inf "Press enter to go"
read read
fi fi
ls /usr/share/kbd/keymaps/**/*.map.gz | less ls /usr/share/kbd/keymaps/**/*.map.gz | less
printf "Correct keymap (omit /usr/share/kbd/keymaps and the file extension): " prompt "Correct keymap (omit /usr/share/kbd/keymaps and the file extension)"
read KMP KMP="$response"
loadkeys ${KMP} loadkeys ${KMP}
fi fi
fdisk -l | grep Disk | grep sectors --color=never fdisk -l | grep Disk | grep sectors --color=never
printf "Would you like to partition manually? (y/N): " prompt "Would you like to partition manually? (y/N)"
read PMODE PMODE="$response"
MANUAL="no" MANUAL="no"
DISK="" DISK=""
if [[ "$PMODE" == "y" ]]; then if [[ "$PMODE" == "y" ]]; then
MANUAL="yes" MANUAL="yes"
else else
printf "Install target (will be WIPED COMPLETELY): " prompt "Install target (will be WIPED COMPLETELY)"
read DISK DISK="$response"
fi fi
if [[ $DISK == *"nvme"* ]]; then if [[ $DISK == *"nvme"* ]]; then
echo "Seems like this is an NVME disk. Noting" inf "Seems like this is an NVME disk. Noting"
NVME="yes" NVME="yes"
else else
NVME="no" NVME="no"
fi fi
if ls /sys/firmware/efi/efivars > /dev/null; then if ls /sys/firmware/efi/efivars > /dev/null; then
echo "Seems like this machine was booted with EFI. Noting" inf "Seems like this machine was booted with EFI. Noting"
EFI="yes" EFI="yes"
else else
EFI="no" EFI="no"
fi fi
echo "Setting system clock via network" inf "Setting system clock via network"
timedatectl set-ntp true timedatectl set-ntp true
if [[ "$MANUAL" == "no" ]]; then if [[ "$MANUAL" == "no" ]]; then
@ -70,7 +84,7 @@ if [[ "$MANUAL" == "no" ]]; then
echo echo
echo "w" echo "w"
) | fdisk $DISK ) | fdisk $DISK
echo "Partitioned ${DISK} as an EFI volume" inf "Partitioned ${DISK} as an EFI volume"
else else
( (
echo "o" echo "o"
@ -80,47 +94,47 @@ if [[ "$MANUAL" == "no" ]]; then
echo echo
echo "w" echo "w"
) | fdisk $DISK ) | fdisk $DISK
echo "Partitioned ${DISK} as an MBR volume" inf "Partitioned ${DISK} as an MBR volume"
fi fi
if [[ "$NVME" == "yes" ]]; then if [[ "$NVME" == "yes" ]]; then
if [[ "$EFI" == "yes" ]]; then if [[ "$EFI" == "yes" ]]; then
echo "Initializing ${DISK} as NVME EFI" inf "Initializing ${DISK} as NVME EFI"
mkfs.vfat ${DISK}p1 mkfs.vfat ${DISK}p1
mkfs.ext4 ${DISK}p2 mkfs.ext4 ${DISK}p2
mount ${DISK}p2 /mnt mount ${DISK}p2 /mnt
mkdir -p /mnt/efi mkdir -p /mnt/efi
mount ${DISK}p1 /mnt/efi mount ${DISK}p1 /mnt/efi
else else
echo "Initializing ${DISK} as NVME MBR" inf "Initializing ${DISK} as NVME MBR"
mkfs.ext4 ${DISK}p1 mkfs.ext4 ${DISK}p1
mount ${DISK}p1 /mnt mount ${DISK}p1 /mnt
fi fi
else else
if [[ "$EFI" == "yes" ]]; then if [[ "$EFI" == "yes" ]]; then
echo "Initializing ${DISK} as EFI" inf "Initializing ${DISK} as EFI"
mkfs.vfat ${DISK}1 mkfs.vfat ${DISK}1
mkfs.ext4 ${DISK}2 mkfs.ext4 ${DISK}2
mount ${DISK}2 /mnt mount ${DISK}2 /mnt
mkdir -p /mnt/efi mkdir -p /mnt/efi
mount ${DISK}1 /mnt/efi mount ${DISK}1 /mnt/efi
else else
echo "Initializing ${DISK} as MBR" inf "Initializing ${DISK} as MBR"
mkfs.ext4 ${DISK}1 mkfs.ext4 ${DISK}1
mount ${DISK}1 /mnt mount ${DISK}1 /mnt
fi fi
fi fi
else else
echo "You have chosen manual partitioning." inf "You have chosen manual partitioning."
echo "We're going to drop to a shell for you to partition, but first, PLEASE READ these notes." inf "We're going to drop to a shell for you to partition, but first, PLEASE READ these notes."
echo "Before you exit the shell, make sure to format and mount a partition for / at /mnt" inf "Before you exit the shell, make sure to format and mount a partition for / at /mnt"
if [[ "$EFI" == "yes" ]]; then if [[ "$EFI" == "yes" ]]; then
mkdir -p /mnt/efi mkdir -p /mnt/efi
echo "Additionally, since this machine was booted with UEFI, please make sure to make a 200MB or greater partition" inf "Additionally, since this machine was booted with UEFI, please make sure to make a 200MB or greater partition"
echo "of type VFAT and mount it at /mnt/efi" inf "of type VFAT and mount it at /mnt/efi"
else else
echo "Please give me the full path of the device you're planning to partition (needed for bootloader installation later)" inf "Please give me the full path of the device you're planning to partition (needed for bootloader installation later)"
echo "Example: /dev/sda" inf "Example: /dev/sda"
printf ": " printf ": "
read DISK read DISK
fi fi
@ -128,21 +142,21 @@ else
CONFDONE="NOPE" CONFDONE="NOPE"
while [[ "$CONFDONE" == "NOPE" ]]; do while [[ "$CONFDONE" == "NOPE" ]]; do
echo "Press enter to go to a shell." inf "Press enter to go to a shell."
read read
bash bash
printf "All set (and partitions mounted?) (y/N): " prompt "All set (and partitions mounted?) (y/N)"
read STAT STAT="$response"
if [[ "$STAT" == "y" ]]; then if [[ "$STAT" == "y" ]]; then
CONFDONE="YEP" CONFDONE="YEP"
fi fi
done done
fi fi
echo "Setting up base CrystalUX System" inf "Setting up base CrystalUX System"
pacstrap /mnt base linux linux-firmware networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch pacstrap /mnt base linux linux-firmware networkmanager grub crystal-grub-theme man-db man-pages texinfo nano sudo curl archlinux-keyring neofetch
if [[ "$EFI" == "yes" ]]; then if [[ "$EFI" == "yes" ]]; then
echo "Installing EFI support package" inf "Installing EFI support package"
pacstrap /mnt efibootmgr pacstrap /mnt efibootmgr
fi fi
@ -168,6 +182,6 @@ fi
arch-chroot /mnt /continue.sh arch-chroot /mnt /continue.sh
rm /mnt/continue.sh rm /mnt/continue.sh
echo "Installation should now be complete. Please press enter to reboot :)" inf "Installation should now be complete. Please press enter to reboot :)"
read read
reboot reboot
Loading…
Cancel
Save