From b87f2694dca808e40a16df85c8f702c1f81bc21c Mon Sep 17 00:00:00 2001 From: micziz Date: Sun, 12 Jun 2022 11:24:56 +0200 Subject: [PATCH] Add an install scritp --- install.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..32adc42 --- /dev/null +++ b/install.sh @@ -0,0 +1,189 @@ +function install_fail() { + echo "Installation failed" + exit 1 +} + + +function Help(){ + echo "Usage: install.sh [option]" + echo "Options:" + echo " -h: Show this help message and exit" + echo " -d: Install only dependencies" + echo " -p: Install only python dependencies (including playwright)" +} + + + +while getopts ":hydp" option; do + case $option in + h) + Help + exit 0;; + y) + ASSUME_YES=1;; + d) + DEPS_ONLY=1;; + p) + PYTHON_ONLY=1;; + \?) + echo "Invalid option: -$OPTARG" >&2 + Help + exit 1;; + :) + echo "Option -$OPTARG requires an argument." >&2 + Help + exit 1;; + esac +done + + + +function install_macos(){ + if [ ! command -v brew &> /dev/null ]; then + NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" + else + echo "Homebrew is already installed" + fi + echo "Installing python" + if [ ! command -v python3 &> /dev/null ]; then + brew install python@3.10 + else + echo "Python is already installed" + fi +} + +function install_arch(){ + echo "Installing python" + if [ ! command -v python3 &> /dev/null ]; then + sudo pacman -S python-pip + else + echo "Python is already installed" + fi + if [ ! command -v git &> /dev/null ]; then + sudo pacman -S git + else + echo "Git is already installed" + fi +} + +function install_deb(){ + echo "Installing python" + if [ ! command -v python3 &> /dev/null ]; then + sudo apt-get install python3 + else + echo "Python is already installed" + fi + if [ ! command -v pip3 &> /dev/null ]; then + sudo apt-get install python3-pip + else + echo "pip is already installed" + fi + if [ ! command -v git &> /dev/null ]; then + sudo apt-get install git + else + echo "git is already installed" + fi +} + +function install_fedora(){ + echo "Installing python" + if [ ! command -v python3 &> /dev/null ]; then + sudo dnf install python3 + else + echo "Python is already installed" + fi + if [ ! command -v pip3 &> /dev/null ]; then + sudo dnf install python3-pip + else + echo "pip is already installed" + fi + if [ ! command -v git &> /dev/null ]; then + sudo dnf install git + else + echo "git is already installed" + fi +} + +function install_centos(){ + echo "Installing python" + if [ ! command -v python3 &> /dev/null ]; then + sudo yum install python3 + else + echo "Python is already installed" + fi + if [ ! command -v pip3 &> /dev/null ]; then + sudo yum install python3-pip + else + echo "pip is already installed" + fi + if [ ! command -v git &> /dev/null ]; then + sudo yum install git + else + echo "git is already installed" + fi +} + +function get_the_bot(){ + echo "Downloading the bot" + git clone https://github.com/elebumm/RedditVideoMakerBot.git +} + +function install_python_dep(){ + echo "Installing python dependencies" + cd RedditVideoMakerBot + pip3 install -r requirements.txt +} + +function install_playwright(){ + echo "Installing playwright" + cd RedditVideoMakerBot + playwright install + playwright install-deps +} + +install_deps(){ + if [ "$(uname)" == "Darwin" ]; then + install_macos || install_fail + elif [ "$(uname)" == "Linux" ]; then + if [ "$(cat /etc/os-release | grep -i "arch")" ]; then + install_arch || install_fail + elif [ "$(cat /etc/os-release | grep -i "debian")" ]; then + install_deb || install_fail + elif [ "$(cat /etc/os-release | grep -i "fedora")" ]; then + install_fedora || install_fail + elif [ "$(cat /etc/os-release | grep -i "centos")" ]; then + install_centos || install_fail + fi + fi +} + + +function install_main(){ + echo "Installing dependencies..." + if [[ ASSUME_YES -eq 1 ]]; then + echo "Assuming yes" + else + echo "Continue? (y/n)" + read answer + if [ "$answer" != "y" ]; then + echo "Aborting" + exit 1 + fi + fi + if [[ DEPS_ONLY -eq 1 ]]; then + echo "Installing only dependencies" + install_deps + elif [[ PYTHON_ONLY -eq 1 ]]; then + echo "Installing only python dependencies" + install_python_dep + install_playwright + else + echo "Installing dependencies and python dependencies" + install_deps + get_the_bot + install_python_dep + fi +} + + +install_main \ No newline at end of file