mirror of
https://github.com/mon5termatt/medicat_installer
synced 2024-11-19 03:25:42 +00:00
8bf12a1f90
Add SHA256 Hash check to ensure that Medicat 7z is good and not have to worry about malicious mirrors
150 lines
4.7 KiB
Bash
Executable File
150 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
|
echo -e "WELCOME TO THE MEDICAT INSTALLER, PLEASE DO NOT RUN THIS AS ROOT\nThis Installer will attempt to Install Ventoy and Medicat\nTHIS IS IN BETA. PLEASE CONTACT MATT IN THE DISCORD FOR ALL ISSUES"
|
|
echo "Updated for efficiency and cross-distro use by SkeletonMan"
|
|
echo "Waiting for 10 seconds"
|
|
sleep 10
|
|
|
|
|
|
if grep -qs "ubuntu" /etc/os-release; then
|
|
os="ubuntu"
|
|
pkgmgr="apt"
|
|
install_arg="install"
|
|
update_arg="update"
|
|
elif grep -qs "freebsd" /etc/os-release; then
|
|
os="freebsd"
|
|
pkgmgr="pkg"
|
|
install_arg="install"
|
|
update_arg="update"
|
|
elif [[ -e /etc/debian_version ]]; then
|
|
os="debian"
|
|
pkgmgr="apt"
|
|
install_arg="install"
|
|
update_arg="update"
|
|
elif [[ -e /etc/almalinux-release || -e /etc/rocky-release || -e /etc/centos-release ]]; then
|
|
echo "Fuck Red-Hat for putting source code behind paywalls."
|
|
os="centos"
|
|
pkgmgr="yum"
|
|
install_arg="install"
|
|
update_arg="update"
|
|
elif [[ -e /etc/fedora-release ]]; then
|
|
os="fedora"
|
|
pkgmgr="yum"
|
|
install_arg="install"
|
|
update_arg="update"
|
|
elif [[ -e /etc/arch-release ]]; then
|
|
os="arch"
|
|
pkgmgr="pacman"
|
|
install_arg="-S --needed --noconfirm"
|
|
update_arg="-Syy"
|
|
fi
|
|
echo "Acquiring any dependencies"
|
|
sudo $pkgmgr $update_arg
|
|
if ! [ $(which wget 2>/dev/null) ]; then
|
|
sudo $pkgmgr $install_arg wget
|
|
fi
|
|
if ! [ $(which curl 2>/dev/null) ]; then
|
|
sudo $pkgmgr $install_arg curl
|
|
fi
|
|
if ! [ $(which 7z 2>/dev/null) ]; then
|
|
if [[ -e /etc/arch-release ]]; then
|
|
sudo $pkgmgr $install_arg p7zip
|
|
elif [[ -e /etc/fedora-release ]]; then
|
|
sudo $pkgmgr $install_arg p7zip-full p7zip-plugins
|
|
else
|
|
sudo $pkgmgr $install_arg p7zip-full
|
|
fi
|
|
fi
|
|
if ! [ $(sudo which mkntfs 2>/dev/null) ]; then
|
|
sudo $pkgmgr $install_arg ntfs-3g
|
|
fi
|
|
if ! [ $(which aria2c 2>/dev/null) ]; then
|
|
sudo $pkgmgr $install_arg aria2
|
|
fi
|
|
venver=$(curl -sL https://api.github.com/repos/ventoy/Ventoy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
|
rm latest
|
|
echo -e "Attempting to download Ventoy Version: ${venver: -6}\n\n\n"
|
|
wget https://github.com/ventoy/Ventoy/releases/download/v${venver: -6}/ventoy-${venver: -6}-linux.tar.gz -O ventoy.tar.gz
|
|
tar -xf ventoy.tar.gz
|
|
rm -rf ventoy.tar.gz ./ventoy/ventoy-${venver: -6}
|
|
mv ventoy-${venver: -6} ventoy
|
|
echo -e "\n\n\n\n\n\n"
|
|
sha256hash='a306331453897d2b20644ca9334bb0015b126b8647cecec8d9b2d300a0027ea4'
|
|
if [[ -f MediCat.USB.v21.12.7z ]]; then
|
|
location='MediCat.USB.v21.12.7z'
|
|
fi
|
|
if ! [[ -f MediCat.USB.v21.12.7z ]]; then
|
|
if [[ -f MediCat\ USB\ v21.12/MediCat.USB.v21.12.7z ]]; then
|
|
location=''MediCat\ USB\ v21.12/MediCat.USB.v21.12.7z''
|
|
else
|
|
echo "Please enter location of MediCat.USB.v21.12.7z if it exists or just press enter to download it via torrent."
|
|
read location
|
|
fi
|
|
if [ -z "$location" ] ; then
|
|
echo "Starting to download torrent"
|
|
wget https://github.com/mon5termatt/medicat_installer/raw/main/download/MediCat_USB_v21.12.torrent -O medicat.torrent
|
|
aria2c --file-allocation=none --seed-time=0 medicat.torrent
|
|
location=''MediCat\ USB\ v21.12/MediCat.USB.v21.12.7z''
|
|
fi
|
|
fi
|
|
|
|
echo -e "Checking Sha256 hash of MediCat.USB.v21.12.7z.."
|
|
checksha256=$(sha256sum MediCat.USB.v21.12.7z | awk '{print $1}')
|
|
if [[ checksha256 -ne $sha256hash ]]; then
|
|
echo -e "Your MediCat.USB.v21.12.7z SHA256 hash does not match!!!"
|
|
echo -e "Hash is $checksha256"
|
|
echo -e "Exiting for your safety!"
|
|
exit
|
|
else
|
|
echo -e "Your MediCat.USB.v21.12.7z sha256 hash matches!"
|
|
echo -e "Hash is $checksha256"
|
|
echo -e "We are safe to proceed"
|
|
fi
|
|
|
|
|
|
echo -e "\n\n\n"
|
|
echo "Please Plug your USB in now if it is not already"
|
|
echo "Waiting 15 seconds..."
|
|
sleep 15
|
|
echo "Please Find the ID of your USB below"
|
|
echo -e "\n\n"
|
|
lsblk | awk '{print $1,$4}'
|
|
echo "Enter the Letter of the USB drive below NOT INCLUDING /dev/ OR the Number After"
|
|
echo "for example enter sda or sdb"
|
|
read letter
|
|
drive=/dev/$letter
|
|
drive2="$drive""1"
|
|
checkingconfirm=""
|
|
while [[ "$checkingconfirm" != [NnYy]* ]]; do
|
|
read -e -p "You want to install Ventoy and Medicat to $drive / $drive2? (Y/N) " checkingconfirm
|
|
if [[ "$checkingconfirm" == [Nn]* ]]; then
|
|
exit
|
|
elif [[ "$checkingconfirm" == [Yy]* ]]; then
|
|
echo "Okay! Will continue in 5 seconds!"
|
|
sleep 5
|
|
else
|
|
echo "Invalid input!"
|
|
fi
|
|
done
|
|
|
|
sudo sh ./ventoy/Ventoy2Disk.sh -I $drive
|
|
umount $drive
|
|
sudo mkntfs --fast --label Medicat $drive2
|
|
if ! [[ -d MedicatUSB/ ]] ; then
|
|
mkdir MedicatUSB
|
|
fi
|
|
sudo mount $drive2 ./MedicatUSB
|
|
7z x -O./MedicatUSB "$location"
|
|
echo "MedicatUSB has been created!"
|
|
unmountcheck=""
|
|
while [[ "$unmountcheck" != [NnYy]* ]]; do
|
|
read -e -p "Would you like to unmount ./MedicatUSB? (Y/N) " unmountcheck
|
|
if [[ $unmountcheck == [Yy]* ]]; then
|
|
echo "MedicatUSB will be unmounted!"
|
|
sudo umount ./MedicatUSB
|
|
elif [[ $unmountcheck == [Nn]* ]]; then
|
|
echo "MedicatUSB will not be unmounted!"
|
|
else
|
|
echo "Invalid input!"
|
|
fi
|
|
done
|