#!/bin/bash
# - bof - #



<<'comment'

bash <(curl -s https://www.education.isdevelopment.us/Arch.Ins/Software.Ins/BashFiles.Ins/SwapImage-fstab.sh)


# - Configured - #

cd ~/; rm -rf ~/Swap-fstab.sh; vim ~/Swap-fstab.sh;
copy & paste this content
chmod +x ~/Swap-fstab.sh; ~/./Swap-fstab.sh;


rm -rf ~/.bashrc;
vim ~/.bashrc;

ssh-keygen -R 192.168.1.1

# - On client - #
cd ~/.ssh;
ssh-keygen -t rsa;

cat ~/.ssh/id_rsa.pub;


# - On server - #
vim ~/.ssh/authorized_keys;

sudo apt install curl git htop inxi net-tools ntp neovim screenfetch tree -y;

# - Btrfs / - swap creation - #
# - Documentation - #
https://unix.stackexchange.com/questions/599949/swapfile-swapon-invalid-argument


# -  - #
# - Remove swap file - #
sudo swapoff -v /swap.img;
sudo rm -rf /swap.img;
comment



clear;



sG_="4G";
sF_=/swap.img;
fS_=/etc/fstab;
sBt_='btrfs'



# -  - #
# - Return partition - #
function Partition_(){
  local sR_=" / " \
        sH_="/home";
  sD_=$1;
  #sS1_=$(echo $(lsblk -f | grep $sD_) | awk '{print $2;}');
  #if [ "$sS1_" == "btrfs" ]; then echo $sS1_; else echo "ext4"; fi;
  sS1_=$(lsblk -f | grep $sD_);
  if [[ $sS1_ == *"$sD_"* ]] || ( [[ $sS1_ == *"$sD_"* ]] && [[ $sS1_ == *"$sH_"* ]] ); then echo $sD_; else echo "ext4"; fi;
}



# -  - #
# - ext4-Swap.img_ - #
function ext4-Swap.img_(){
  echo "";
  echo "Creating swap file for ext4 root partition...";
  sudo fallocate -l $sG_ $sF_;
  sudo chmod 600 $sF_;
  sudo mkswap -L Swap $sF_;
  sudo swapon $sF_;
  echo "swap.img file was created successfully...";
  echo "";
}



# -  - #
# - btrfs-Swap.img_ - #
function btrfs-Swap.img_(){
  echo "";
  echo "Creating swap file for btrfs root partition...";
  sudo truncate -s 0 $sF_;
  sudo chattr +C $sF_;
  sudo fallocate -l $sG_ $sF_;
  sudo chmod 600 $sF_;
  sudo mkswap -L Swap $sF_;
  sudo swapon $sF_;
  echo "swap.img file was created successfully...";
  echo "";
}



# -  - #
# - mountSwap_ - #
function mountSwap_(){
  local sD_=~/Documents \
        sL_='';
  local tFs_=$sD_/fstab.tmp;

  echo "";
  echo "Mounting swap.img to fstab file ...";
  mkdir -p $sD_;
  rm -rf $tFs_;
  cat $fS_ >> $tFs_;
  sL_=$(echo "$sF_                                   none        swap    defaults                0       0")
  sed -i '2i '"$sL_" $tFs_;
  sudo mv $tFs_ $fS_;
  sudo mount -av;
  echo "swap.img file was mounted successfully...";
  echo "";

<<'comment'
  sudo swapoff -v /swap.img;
  sudo rm -rf /swap.img;
comment
}



sP_=$(Partition_ $sBt_);
if [ "$sP_" == "btrfs" ]; then btrfs-Swap.img_; else ext4-Swap.img_; fi;
mountSwap_;


# - Show swap - #
rm -rf ~/Swap-fstab.sh;
free -h;

echo "";
cat $fS_;
echo -e "\n\n";

echo "Creat & mount swap on fstab successfully..."



<<'comment'
cd ~/; rm -rf ~/Swap-fstab.sh; vim ~/Swap-fstab.sh;
copy & paste this content
chmod +x ~/Swap-fstab.sh; ~/./Swap-fstab.sh;
comment



# - eof - #