-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Install script patch #1994 #2029
Open
iaacornus
wants to merge
9
commits into
elebumm:master
Choose a base branch
from
iaacornus:install_script_patch
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
634c076
fix spell err
iaacornus aea9193
change permission to +x
iaacornus 8cd9409
use tab instead of spaces
iaacornus aa45199
add space before {
iaacornus d490b24
install pipx as dependeny
iaacornus 9becf7a
use pipx instead of pip3
iaacornus 44fa637
avoid cd in and out, loop through the file and install all the depend…
iaacornus 44de7b8
fix arch error
iaacornus 4e3cc3b
use pipx to install playwright
iaacornus File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,22 @@ | ||
#!/bin/bash | ||
#!/bin/bash | ||
|
||
# If the install fails, then print an error and exit. | ||
function install_fail() { | ||
echo "Installation failed" | ||
exit 1 | ||
} | ||
echo "Installation failed" | ||
exit 1 | ||
} | ||
|
||
# This is the help fuction. It helps users withe the options | ||
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)" | ||
echo " -b: Install just the bot" | ||
echo " -l: Install the bot and the python dependencies" | ||
} | ||
# This is the help fuction. It helps users with the options | ||
# This is the help fuction. It helps users with the options | ||
function Help() { | ||
echo "Usage: install.sh [option]" | ||
echo "Options:" | ||
echo -e "\t-h: Show this help message and exit" | ||
echo -e "\t-d: Install only dependencies" | ||
echo -e "\t-p: Install only python dependencies (including playwright)" | ||
echo -e "\t-b: Install just the bot" | ||
echo -e "\t-l: Install the bot and the python dependencies" | ||
} | ||
|
||
# Options | ||
while getopts ":hydpbl" option; do | ||
|
@@ -42,15 +43,15 @@ while getopts ":hydpbl" option; do | |
:) | ||
echo "Option -$OPTARG requires an argument." >&2 Help exit 1;; | ||
esac | ||
done | ||
done | ||
|
||
# Install dependencies for MacOS | ||
function install_macos(){ | ||
function install_macos() { | ||
# Check if homebrew is installed | ||
if [ ! command -v brew &> /dev/null ]; then | ||
echo "Installing Homebrew" | ||
# 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. | ||
if [[ "uname -m" == "x86_64" ]]; then | ||
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile && source ~/.bash_profile | ||
|
@@ -61,80 +62,81 @@ function install_macos(){ | |
echo "Homebrew is already installed" | ||
fi | ||
# Install the required packages | ||
echo "Installing required Packages" | ||
echo "Installing required Packages" | ||
if [! command --version python3 &> /dev/null ]; then | ||
echo "Installing python3" | ||
brew install [email protected] | ||
else | ||
echo "python3 already installed." | ||
fi | ||
brew install tcl-tk python-tk | ||
} | ||
} | ||
|
||
# Function to install for arch (and other forks like manjaro) | ||
function install_arch(){ | ||
function install_arch() { | ||
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 install_deb(){ | ||
function install_deb() { | ||
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 install_fedora(){ | ||
echo "Installing required packages" | ||
sudo dnf install python3 python3-tkinter python3-pip python3-devel unzip || install_fail | ||
} | ||
function install_fedora() { | ||
echo "Installing required packages" | ||
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 install_centos(){ | ||
function install_centos() { | ||
echo "Installing required packages" | ||
sudo yum install -y python3 || install_fail | ||
sudo yum install -y python3-tkinter epel-release python3-pip unzip|| install_fail | ||
} | ||
sudo yum install -y python3-tkinter pipx epel-release python3-pip unzip python3 || install_fail | ||
} | ||
|
||
function get_the_bot(){ | ||
echo "Downloading the bot" | ||
function get_the_bot() { | ||
echo "Downloading the bot" | ||
rm -rf RedditVideoMakerBot-master | ||
curl -sL https://github.com/elebumm/RedditVideoMakerBot/archive/refs/heads/master.zip -o master.zip | ||
unzip master.zip | ||
rm -rf master.zip | ||
} | ||
} | ||
|
||
#install python dependencies | ||
function install_python_dep(){ | ||
function install_python_dep() { | ||
# tell the user that the script is going to install the python dependencies | ||
echo "Installing python dependencies" | ||
# cd into the directory | ||
cd RedditVideoMakerBot-master | ||
echo "Installing python dependencies" | ||
# install the dependencies | ||
pip3 install -r requirements.txt | ||
# cd out | ||
cd .. | ||
} | ||
DEP_LIST=./RedditVideoMakerBot-master/requirements.txt | ||
if [[ -f $DEP_LIST ]]; then | ||
while read -r DEPS; do | ||
pipx install $DEPS | ||
done < "$DEP_LIST" | ||
fi | ||
} | ||
|
||
# install playwright function | ||
function install_playwright(){ | ||
# tell the user that the script is going to install playwright | ||
function install_playwright() { | ||
# tell the user that the script is going to install playwright | ||
echo "Installing playwright" | ||
# cd into the directory where the script is downloaded | ||
cd RedditVideoMakerBot-master | ||
# run the install script | ||
python3 -m playwright install | ||
python3 -m playwright install-deps | ||
pipx run playwright install | ||
pipx run playwright install-deps | ||
# 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" | ||
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" | ||
fi | ||
cd .. | ||
} | ||
} | ||
|
||
# Install depndencies | ||
function install_deps(){ | ||
function install_deps() { | ||
# if the platform is mac, install macos | ||
if [ "$(uname)" == "Darwin" ]; then | ||
install_macos || install_fail | ||
|
@@ -164,30 +166,30 @@ https://github.com/elebumm/RedditVideoMakerBot" | |
} | ||
|
||
# Main function | ||
function install_main(){ | ||
function install_main() { | ||
# Print that are installing | ||
echo "Installing..." | ||
# if -y (assume yes) continue | ||
echo "Installing..." | ||
# if -y (assume yes) continue | ||
if [[ ASSUME_YES -eq 1 ]]; then | ||
echo "Assuming yes" | ||
# else, ask if they want to continue | ||
else | ||
echo "Continue? (y/n)" | ||
read answer | ||
echo "Continue? (y/n)" | ||
read answer | ||
# if the answer is not yes, then exit | ||
if [ "$answer" != "y" ]; then | ||
echo "Aborting" | ||
echo "Aborting" | ||
exit 1 | ||
fi | ||
fi | ||
fi | ||
# if the -d (only dependencies) options is selected install just the dependencies | ||
if [[ DEPS_ONLY -eq 1 ]]; then | ||
echo "Installing only dependencies" | ||
echo "Installing only dependencies" | ||
install_deps | ||
elif [[ PYTHON_ONLY -eq 1 ]]; then | ||
# if the -p (only python dependencies) options is selected install just the python dependencies and playwright | ||
echo "Installing only python dependencies" | ||
install_python_dep | ||
echo "Installing only python dependencies" | ||
install_python_dep | ||
install_playwright | ||
# if the -b (only the bot) options is selected install just the bot | ||
elif [[ JUST_BOT -eq 1 ]]; then | ||
|
@@ -200,26 +202,26 @@ function install_main(){ | |
install_python_dep | ||
# else, install everything | ||
else | ||
echo "Installing all" | ||
install_deps | ||
get_the_bot | ||
echo "Installing all" | ||
install_deps | ||
get_the_bot | ||
install_python_dep | ||
install_playwright | ||
fi | ||
|
||
DIR="./RedditVideoMakerBot-master" | ||
if [ -d "$DIR" ]; then | ||
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 | ||
echo "Assuming yes" | ||
# else, ask if they want to continue | ||
else | ||
echo "Continue? (y/n)" | ||
read answer | ||
echo "Continue? (y/n)" | ||
read answer | ||
# if the answer is not yes, then exit | ||
if [ "$answer" != "y" ]; then | ||
echo "Aborting" | ||
echo "Aborting" | ||
exit 1 | ||
fi | ||
fi | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not tested on other distros, but on arch at least, pipx install packagename prints out an error for most packages: