pull/2029/merge
James Aaron Erang 4 months ago committed by GitHub
commit 45bac9ec8e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,21 +1,22 @@
#!/bin/bash #!/bin/bash
# If the install fails, then print an error and exit. # If the install fails, then print an error and exit.
function install_fail() { function install_fail() {
echo "Installation failed" echo "Installation failed"
exit 1 exit 1
} }
# This is the help fuction. It helps users withe the options # This is the help fuction. It helps users with the options
function Help(){ # This is the help fuction. It helps users with the options
echo "Usage: install.sh [option]" function Help() {
echo "Options:" echo "Usage: install.sh [option]"
echo " -h: Show this help message and exit" echo "Options:"
echo " -d: Install only dependencies" echo -e "\t-h: Show this help message and exit"
echo " -p: Install only python dependencies (including playwright)" echo -e "\t-d: Install only dependencies"
echo " -b: Install just the bot" echo -e "\t-p: Install only python dependencies (including playwright)"
echo " -l: Install the bot and the python dependencies" echo -e "\t-b: Install just the bot"
} echo -e "\t-l: Install the bot and the python dependencies"
}
# Options # Options
while getopts ":hydpbl" option; do while getopts ":hydpbl" option; do
@ -42,15 +43,15 @@ while getopts ":hydpbl" option; do
:) :)
echo "Option -$OPTARG requires an argument." >&2 Help exit 1;; echo "Option -$OPTARG requires an argument." >&2 Help exit 1;;
esac esac
done done
# Install dependencies for MacOS # Install dependencies for MacOS
function install_macos(){ function install_macos() {
# Check if homebrew is installed # Check if homebrew is installed
if [ ! command -v brew &> /dev/null ]; then if [ ! command -v brew &> /dev/null ]; then
echo "Installing Homebrew" echo "Installing Homebrew"
# if it's is not installed, then install it in a NONINTERACTIVE way # if it's is not installed, then install it in a NONINTERACTIVE way
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
# Check for what arcitecture, so you can place path. # Check for what arcitecture, so you can place path.
if [[ "uname -m" == "x86_64" ]]; then if [[ "uname -m" == "x86_64" ]]; then
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile && source ~/.bash_profile echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile && source ~/.bash_profile
@ -61,7 +62,7 @@ function install_macos(){
echo "Homebrew is already installed" echo "Homebrew is already installed"
fi fi
# Install the required packages # Install the required packages
echo "Installing required Packages" echo "Installing required Packages"
if [! command --version python3 &> /dev/null ]; then if [! command --version python3 &> /dev/null ]; then
echo "Installing python3" echo "Installing python3"
brew install python@3.10 brew install python@3.10
@ -69,72 +70,73 @@ function install_macos(){
echo "python3 already installed." echo "python3 already installed."
fi fi
brew install tcl-tk python-tk brew install tcl-tk python-tk
} }
# Function to install for arch (and other forks like manjaro) # Function to install for arch (and other forks like manjaro)
function install_arch(){ function install_arch() {
echo "Installing required packages" echo "Installing required packages"
sudo pacman -S --needed python3 tk git && python3 -m ensurepip unzip || install_fail sudo pacman -S --needed python3 python-pipx tk git unzip
} python -m ensurepip || install_fail
}
# Function to install for debian (and ubuntu) # Function to install for debian (and ubuntu)
function install_deb(){ function install_deb() {
echo "Installing required packages" echo "Installing required packages"
sudo apt install python3 python3-dev python3-tk python3-pip unzip || install_fail sudo apt install python3 pipx python3-dev python3-tk python3-pip unzip || install_fail
} }
# Function to install for fedora (and other forks) # Function to install for fedora (and other forks)
function install_fedora(){ function install_fedora() {
echo "Installing required packages" echo "Installing required packages"
sudo dnf install python3 python3-tkinter python3-pip python3-devel unzip || install_fail sudo dnf install python3 pipx python3-tkinter python3-pip python3-devel unzip || install_fail
} }
# Function to install for centos (and other forks based on it) # Function to install for centos (and other forks based on it)
function install_centos(){ function install_centos() {
echo "Installing required packages" echo "Installing required packages"
sudo yum install -y python3 || install_fail sudo yum install -y python3-tkinter pipx epel-release python3-pip unzip python3 || install_fail
sudo yum install -y python3-tkinter epel-release python3-pip unzip|| install_fail }
}
function get_the_bot(){ function get_the_bot() {
echo "Downloading the bot" echo "Downloading the bot"
rm -rf RedditVideoMakerBot-master rm -rf RedditVideoMakerBot-master
curl -sL https://github.com/elebumm/RedditVideoMakerBot/archive/refs/heads/master.zip -o master.zip curl -sL https://github.com/elebumm/RedditVideoMakerBot/archive/refs/heads/master.zip -o master.zip
unzip master.zip unzip master.zip
rm -rf master.zip rm -rf master.zip
} }
#install python dependencies #install python dependencies
function install_python_dep(){ function install_python_dep() {
# tell the user that the script is going to install the python dependencies # tell the user that the script is going to install the python dependencies
echo "Installing python dependencies" echo "Installing python dependencies"
# cd into the directory
cd RedditVideoMakerBot-master
# install the dependencies # install the dependencies
pip3 install -r requirements.txt DEP_LIST=./RedditVideoMakerBot-master/requirements.txt
# cd out if [[ -f $DEP_LIST ]]; then
cd .. while read -r DEPS; do
} pipx install $DEPS
done < "$DEP_LIST"
fi
}
# install playwright function # install playwright function
function install_playwright(){ function install_playwright() {
# tell the user that the script is going to install playwright # tell the user that the script is going to install playwright
echo "Installing playwright" echo "Installing playwright"
# cd into the directory where the script is downloaded # cd into the directory where the script is downloaded
cd RedditVideoMakerBot-master cd RedditVideoMakerBot-master
# run the install script # run the install script
python3 -m playwright install pipx run playwright install
python3 -m playwright install-deps pipx run playwright install-deps
# give a note # give a note
printf "Note, if these gave any errors, playwright may not be officially supported on your OS, check this issues page for support\nhttps://github.com/microsoft/playwright/issues" printf "Note, if these gave any errors, playwright may not be officially supported on your OS, check this issues page for support\nhttps://github.com/microsoft/playwright/issues"
if [ -x "$(command -v pacman)" ]; then if [ -x "$(command -v pacman)" ]; then
printf "It seems you are on and Arch based distro.\nTry installing these from the AUR for playwright to run:\nenchant1.6\nicu66\nlibwebp052\n" printf "It seems you are on and Arch based distro.\nTry installing these from the AUR for playwright to run:\nenchant1.6\nicu66\nlibwebp052\n"
fi fi
cd .. cd ..
} }
# Install depndencies # Install depndencies
function install_deps(){ function install_deps() {
# if the platform is mac, install macos # if the platform is mac, install macos
if [ "$(uname)" == "Darwin" ]; then if [ "$(uname)" == "Darwin" ]; then
install_macos || install_fail install_macos || install_fail
@ -164,30 +166,30 @@ https://github.com/elebumm/RedditVideoMakerBot"
} }
# Main function # Main function
function install_main(){ function install_main() {
# Print that are installing # Print that are installing
echo "Installing..." echo "Installing..."
# if -y (assume yes) continue # if -y (assume yes) continue
if [[ ASSUME_YES -eq 1 ]]; then if [[ ASSUME_YES -eq 1 ]]; then
echo "Assuming yes" echo "Assuming yes"
# else, ask if they want to continue # else, ask if they want to continue
else else
echo "Continue? (y/n)" echo "Continue? (y/n)"
read answer read answer
# if the answer is not yes, then exit # if the answer is not yes, then exit
if [ "$answer" != "y" ]; then if [ "$answer" != "y" ]; then
echo "Aborting" echo "Aborting"
exit 1 exit 1
fi fi
fi fi
# if the -d (only dependencies) options is selected install just the dependencies # if the -d (only dependencies) options is selected install just the dependencies
if [[ DEPS_ONLY -eq 1 ]]; then if [[ DEPS_ONLY -eq 1 ]]; then
echo "Installing only dependencies" echo "Installing only dependencies"
install_deps install_deps
elif [[ PYTHON_ONLY -eq 1 ]]; then elif [[ PYTHON_ONLY -eq 1 ]]; then
# if the -p (only python dependencies) options is selected install just the python dependencies and playwright # if the -p (only python dependencies) options is selected install just the python dependencies and playwright
echo "Installing only python dependencies" echo "Installing only python dependencies"
install_python_dep install_python_dep
install_playwright install_playwright
# if the -b (only the bot) options is selected install just the bot # if the -b (only the bot) options is selected install just the bot
elif [[ JUST_BOT -eq 1 ]]; then elif [[ JUST_BOT -eq 1 ]]; then
@ -200,9 +202,9 @@ function install_main(){
install_python_dep install_python_dep
# else, install everything # else, install everything
else else
echo "Installing all" echo "Installing all"
install_deps install_deps
get_the_bot get_the_bot
install_python_dep install_python_dep
install_playwright install_playwright
fi fi
@ -210,16 +212,16 @@ function install_main(){
DIR="./RedditVideoMakerBot-master" DIR="./RedditVideoMakerBot-master"
if [ -d "$DIR" ]; then if [ -d "$DIR" ]; then
printf "\nThe bot is installed, want to run it?" printf "\nThe bot is installed, want to run it?"
# if -y (assume yes) continue # if -y (assume yes) continue
if [[ ASSUME_YES -eq 1 ]]; then if [[ ASSUME_YES -eq 1 ]]; then
echo "Assuming yes" echo "Assuming yes"
# else, ask if they want to continue # else, ask if they want to continue
else else
echo "Continue? (y/n)" echo "Continue? (y/n)"
read answer read answer
# if the answer is not yes, then exit # if the answer is not yes, then exit
if [ "$answer" != "y" ]; then if [ "$answer" != "y" ]; then
echo "Aborting" echo "Aborting"
exit 1 exit 1
fi fi
fi fi

Loading…
Cancel
Save