From cd5be357796cb4404f1ee4d49d5964ccf576acde Mon Sep 17 00:00:00 2001
From: Santiago Lo Coco <santilococo.01@gmail.com>
Date: Sat, 25 Dec 2021 23:39:12 -0300
Subject: [PATCH] Add csv with the programs to be installed

---
 cocoPrograms.csv | 141 +++++++++++++++++++++++++++++++++++++++++++++++
 install.sh       |  37 ++++++++-----
 2 files changed, 165 insertions(+), 13 deletions(-)
 create mode 100644 cocoPrograms.csv

diff --git a/cocoPrograms.csv b/cocoPrograms.csv
new file mode 100644
index 0000000..28fa8fc
--- /dev/null
+++ b/cocoPrograms.csv
@@ -0,0 +1,141 @@
+NAME,IMPORTANT
+alacritty,N
+alsa-utils,Y
+ani-cli-git,N
+base,Y
+base-devel,Y
+bashmount,N
+bc,N
+binwalk,N
+bitwarden,N
+brave-bin,N
+chromium,N
+clipnotify,N
+cmake,N
+cppcheck,N
+cronie,N
+detox,N
+dialog,Y
+discord,N
+docker,N
+docker-compose,N
+droidcam,N
+efibootmgr,Y
+exifcleaner-bin,N
+ferdi-bin,N
+filezilla,N
+firefox,N
+flameshot,N
+foxitreader,N
+fsearch,N
+fzf,N
+gdb,N
+gimp,N
+git,Y
+gnu-netcat,N
+grub,Y
+hdparm,N
+htop,N
+imagemagick,N
+imwheel,N
+intel-ucode,Y
+jdk8-openjdk,N
+jdk-openjdk,N
+jetbrains-toolbox,N
+keepass,N
+keepass-plugin-keeagent,N
+keychain,N
+libimobiledevice,N
+libreoffice-still,N
+libxft-bgra,N
+linux,Y
+linux-firmware,Y
+linux-headers,Y
+lxappearance,N
+man-pages,Y
+mpv,N
+mutt-wizard-git,N
+nasm,N
+neofetch,N
+neovim,Y
+net-tools,N
+networkmanager,Y
+nitrogen,N
+nmap,N
+noisetorch,N
+noto-fonts,Y
+noto-fonts-emoji,Y
+ntfs-3g,N
+nvidia,Y
+nvidia-settings,Y
+nvidia-utils,Y
+nvimpager-git,N
+obs-studio,N
+octave,N
+openssh,N
+orchis-theme-bin,N
+p7zip,N
+pam-gnupg,N
+pandoc-bin,N
+pcmanfm,N
+pdfjumbler,N
+pdfslicer,N
+perl-image-exiftool,N
+picom-git,N
+piper,N
+sudo,Y
+pipewire,Y
+pipewire-alsa,Y
+pipewire-pulse,Y
+psensor,N
+pulsemixer,N
+python-pip,N
+python-pynvim,N
+python-pywal,N
+qalculate-gtk,N
+qemu,N
+r,N
+ranger,N
+redshift,N
+reflector,Y
+rtl8821cu-dkms-git,N
+scdoc,N
+seahorse,N
+shellcheck-bin,N
+spotify,N
+stegsolve,N
+strace,N
+sxiv,N
+tcpdump,N
+tela-icon-theme-bin,N
+texlive-bin,N
+tk,N
+tmux,N
+traceroute,N
+trash-cli,N
+ttf-fira-code,Y
+ttf-joypixels,N
+ttf-meslo-nerd-font-powerlevel10k,N
+unclutter,N
+unrar,N
+unzip,N
+usb_modeswitch,N
+usbutils,N
+valgrind,N
+vim,N
+virtualbox,N
+visual-studio-code-bin,N
+wget,N
+xclip,N
+xcompmgr,N
+xdg-user-dirs,Y
+xdg-utils,Y
+xdotool,N
+xorg,N
+xorg-xinit,N
+xsel,N
+youtube-dl,N
+zaread-git,N
+zathura,N
+zathura-pdf-mupdf,N
+zsh,Y
diff --git a/install.sh b/install.sh
index 9ffa9b9..fdcc69a 100755
--- a/install.sh
+++ b/install.sh
@@ -92,12 +92,26 @@ formatPart() {
 mountPart() {
     mount "$rootPart" /mnt > /dev/null
     mkdir -p /mnt/boot/efi 
+    # TODO: Ask where to mount the bootPart
     mount "$bootPart" /mnt/boot/efi > /dev/null
     swapon "$swapPart" > /dev/null
 }
 
-installPackages() {
-    pacstrap /mnt base linux linux-firmware git neovim intel-ucode reflector
+getThePackages() {
+    if [ ! -f "programs.csv" ]; then
+        curl -LO "https://raw.githubusercontent.com/santilococo/CocoASAIS/master/cocoPrograms.csv"
+    fi
+    local IFS=,
+    while read -r NAME IMPORTANT; do
+        if [ "$IMPORTANT" = "${1}" ]; then
+            installPackage "$NAME"
+        fi
+	done < cocoPrograms.csv
+}
+
+installImportantPackages() {
+    getThePackages "Y"
+    runInChroot "systemctl enable NetworkManager; systemctl enable fstrim.timer"
 }
 
 generateFstab() {
@@ -168,16 +182,12 @@ updateMirrors() {
 }
 
 installPackage() {
-    whiptail --infobox "Installing \`$1\` from the official arch repositories." 0 0
+    whiptail --infobox "Installing '$1'." 0 0
     pacstrap /mnt ${1}
 }
 
-installMorePackages() {
-    pacstrap /mnt grub efibootmgr networkmanager base-devel linux-headers xdg-user-dirs xdg-utils alsa-utils pipewire pipewire-alsa pipewire-pulse sudo nvidia-utils nvidia-settings
-    runInChroot "systemctl enable NetworkManager; systemctl enable fstrim.timer"
-}
-
 grubSetUp() {
+    # TODO: Prompt user for efi-directory
     runInChroot "grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB; grub-mkconfig -o /boot/grub/grub.cfg"
 }
 
@@ -208,8 +218,8 @@ finishInstallation() {
 }
 
 installLastPrograms() {
-    sudo pacman -Sy --noconfirm xorg xorg-xinit ttf-fira-code dialog
-    # TODO: Use csv to install all the programs
+    sudo pacman -Sy
+    getThePackages "N"
     sudo pacman -S zsh
     sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
     git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
@@ -230,14 +240,13 @@ steps=(
     checkUefi
     updateSystemClock
     partDisks
-    installPackages
+    installImportantPackages
     generateFstab
     setTimeZone
     setLocale
     networkConf
     setRootPassword
     updateMirrors
-    installMorePackages
     grubSetUp
     userSetUp
     finishInstallation
@@ -272,4 +281,6 @@ runScript() {
     done
 }
 
-runScript
\ No newline at end of file
+# runScript
+# installPackages
+    getThePackages "N"
\ No newline at end of file