# - bof - #

#!/bin/bash


<<'comment'
# -  - #
# - Documentation - #
https://www.youtube.com/watch?v=FXUbC-mPXHg
https://github.com/archzfs/archzfs/wiki
https://wiki.archlinux.org/title/Arch_Linux_Archive

[archzfs]
Server = https://archzfs.com/$repo/$arch



vim ~/Create_Arch_ZFS_ISO-New.sh;
copy & paste this content
chmod +x ~/Create_Arch_ZFS_ISO-New.sh; ~/./Create_Arch_ZFS_ISO-New.sh;

ssh-keygen -R 192.168.122.1
cd~/; curl -O http://192.168.1.200/Programs/Linux.Img/Linux_Arch.Img/Arch_ISOs.Img/Create_Arch_ZFS_ISO/Create_Arch_ZFS_ISO-New.sh;
chmod +x ~/Create_Arch_ZFS_ISO-New.sh; ~/./Create_Arch_ZFS_ISO-New.sh;
~/./Create_Arch_ZFS_ISO-New.sh;



# -  - #
# - When this error happen on ssh command - #

#  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#  @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
#  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#  # -  - #
#  # - Fixing this error - #
#  ssh-keygen -R 192.168.1.100;
#  ssh-keygen -R 192.168.1.200;
#  ssh-keygen -R 192.168.1.238;
#  ssh-keygen -R 192.168.122.100;
comment



clear;



# :a
# -  - #
# - Update/Install archiso - #
sudo pacman -Syu --noconfirm; sudo pacman -Syyuu --noconfirm;
sudo pacman -S archiso --noconfirm;

echo "";
read -t 3 -p "System updated...";
echo "";

cd ~/Downloads;
mkdir -p ISOBuild; cd ISOBuild;
cp -r /usr/share/archiso/configs/releng/ .;
cd ~/Downloads;

cp /etc/pacman.conf ./tmp.txt;
echo "" >> ./tmp.txt;
echo "[archzfs]" >> ./tmp.txt;
sed -i '$ a Server = https://archzfs.com/$repo/$arch' ./tmp.txt;
sudo cp ./tmp.txt /etc/pacman.conf;
rm -rf ./tmp.txt;
echo "";
read -t 3 -p "pacman.conf modified...";
echo "";



# :b
# -  - #
# - Colletc arch keys - #
# https://github.com/archzfs/archzfs/wiki

sudo pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
sudo pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76

sudo pacman -Syu --noconfirm; sudo pacman -Syyuu --noconfirm;

curl -O https://archzfs.com/archzfs.gpg;
sudo pacman-key -a archzfs.gpg;
sudo pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76

rm -rf archzfs.gpg;
echo "";
read -t 3 -p "archzfs keys updated...";
echo "";



# :c
# -  - #
# - Edit pacman.conf - #
cd ~/Downloads/ISOBuild/releng;



<<'comment'
sed -n '/ParallelDownloads = 5/{=;p;}' ./pacman.conf;
ln=$(sed -n '/ParallelDownloads = 5/{=}' ./pacman.conf);
cat -n ./pacman.conf | grep "ParallelDownloads = 5";
echo $ln;

grep -n 'ParallelDownloads = 5' ./pacman.conf;
sudo sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 5/' ./pacman.conf;
ln=$(sed -n '/ParallelDownloads = 5/{=}' ./pacman.conf);
ln=$(echo "$(($ln + 2))");
sed -i $ln' i ILoveCandy' ./pacman.conf;

sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 5/' ./pacman.conf;
sed -i '39 i ILoveCandy' ./pacman.conf;
ParallelDownloads = 5
ILoveCandy
comment



sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 5/' ./pacman.conf;
ln=$(sed -n '/ParallelDownloads = 5/{=}' ./pacman.conf);
ln=$(echo "$(($ln + 1))");
sed -i $ln' i ILoveCandy' ./pacman.conf;



echo "" >> ./pacman.conf;
echo "[archzfs]" >> ./pacman.conf;
sed -i '$ a Server = https://archzfs.com/$repo/$arch' ./pacman.conf;
echo "SigLevel = Optional TrustAll" >> ./pacman.conf;



<<'comment'
[archzfs]
Server = https://archzfs.com/$repo/$arch
SigLevel = Optional TrustAll

# -  - #
# - Update dates for Zfs-Linux - #
https://archzfs.com/archzfs/x86_64/
zfs-linux-2.1.2_5.16.8.arch1.1-1.src.tar.gz 2022-02-10

# -  - #
# - Update dates - #
https://wiki.archlinux.org/title/Arch_Linux_Archive#How_to_restore_all_packages_to_a_specific_date
comment


ln=$(sed -n '/core/{=}' ./pacman.conf);
ln=$(echo "$(($ln + 1))");
sed -i $ln'd' ./pacman.conf;
sed -i $ln' i SigLevel = PackageRequired' ./pacman.conf;
ln=$(echo "$(($ln + 1))");
sed -i $ln' i Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch' ./pacman.conf;

ln=$(sed -n '/extra/{=}' ./pacman.conf);
ln=$(echo "$(($ln + 1))");
sed -i $ln'd' ./pacman.conf;
sed -i $ln' i SigLevel = PackageRequired' ./pacman.conf;
ln=$(echo "$(($ln + 1))");
sed -i $ln' i Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch' ./pacman.conf;

ln=$(sed -n '/community-testing/{=}' ./pacman.conf);
sed -i $ln'd' ./pacman.conf;
sed -i $ln'd' ./pacman.conf;
sed -i $ln'd' ./pacman.conf;

ln=$(sed -n '/community/{=}' ./pacman.conf);
ln=$(echo "$(($ln + 1))");
sed -i $ln'd' ./pacman.conf;
sed -i $ln' i SigLevel = PackageRequired' ./pacman.conf;
ln=$(echo "$(($ln + 1))");
sed -i $ln' i Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch' ./pacman.conf;

# [core]
# SigLevel = PackageRequired
# Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch

# [extra]
# SigLevel = PackageRequired
# Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch

# [community]
# SigLevel = PackageRequired
# Server=https://archive.archlinux.org/repos/2022/03/03/$repo/os/$arch
echo "";
read -t 3 -p "pacman.conf modified...";
echo "";



# :d
# -  - #
# - Add packages to packages.x86_64 - #
echo "linux-headers" >> ./packages.x86_64;
echo "archzfs-linux" >> ./packages.x86_64;
# sudo vim packages.x86_64;
# linux-headers
# archzfs-linux
echo "";
echo "packages.x86_64 modified...";
read -t 5 -p "Creation of ArchISO will start soon...";
echo "";



# :e
# -  - #
# - Create WORK,ISOOUT folders - #
mkdir -p {WORK,ISOOUT};

# -  - #
# - Become root - #
# - Generate ISO - #
#su;
sudo mkarchiso -v -w WORK -o ISOOUT .;

rm -rf ~/Create_Arch_ZFS_ISO-New.sh;

echo "";
echo "ArchISO was created successfully...";
echo "";



<<'comment'
ssh-keygen -R 192.168.122.1
cd~/; curl -O http://192.168.1.200/Programs/Linux.Img/Linux_Arch.Img/Arch_ISOs.Img/Create_Arch_ZFS_ISO/Create_Arch_ZFS_ISO-New.sh;
chmod +x ~/Create_Arch_ZFS_ISO-New.sh; ~/./Create_Arch_ZFS_ISO-New.sh;
~/./Create_Arch_ZFS_ISO-New.sh;
comment



# - eof - #
