78 lines
2.1 KiB
Bash
Executable File
78 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Check for venv installation
|
|
check_venv() {
|
|
if ! command -v python3 -m venv &> /dev/null; then
|
|
echo "Python venv is not installed. Attempting to install it..."
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
# Linux
|
|
if command -v apt-get &> /dev/null; then
|
|
sudo apt-get update
|
|
sudo apt-get install python3-venv -y
|
|
elif command -v yum &> /dev/null; then
|
|
sudo yum install python3-venv -y
|
|
else
|
|
echo "Unsupported Linux package manager. Please install Python venv manually."
|
|
exit 1
|
|
fi
|
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# MacOS
|
|
brew install python3
|
|
elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]]; then
|
|
# Windows
|
|
echo "Please install Python and add it to your PATH manually."
|
|
exit 1
|
|
else
|
|
echo "Unsupported operating system. Please install Python venv manually."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Python venv is already installed."
|
|
fi
|
|
}
|
|
|
|
# Check for required binaries
|
|
check_binaries() {
|
|
DEPENDENCIES=("flask" "sqlite3" "curl" "openssl")
|
|
|
|
echo "Checking for required dependencies..."
|
|
for dep in "${DEPENDENCIES[@]}"; do
|
|
if ! command -v $dep &> /dev/null; then
|
|
echo "$dep is not installed. Please install it."
|
|
exit 1
|
|
else
|
|
echo "$dep is installed."
|
|
fi
|
|
done
|
|
}
|
|
|
|
# Create virtual environment and install requirements
|
|
setup_venv() {
|
|
echo "Setting up virtual environment..."
|
|
python3 -m venv venv
|
|
|
|
echo "Activating virtual environment..."
|
|
source venv/bin/activate
|
|
|
|
if [[ ! -f "requirements.txt" ]]; then
|
|
echo "requirements.txt not found!"
|
|
deactivate
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing dependencies from requirements.txt..."
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
echo "All dependencies installed."
|
|
|
|
deactivate
|
|
}
|
|
|
|
# Run the checks and setup
|
|
check_venv
|
|
check_binaries
|
|
setup_venv
|
|
|
|
echo "Installation completed successfully."
|
|
|