secondme-api / scripts /utils /install_config.sh
Gemini
feat: add detailed logging
01d5a5d
#!/bin/bash
# Installation recommendations configuration
# Import logging utilities if not already imported
if ! command -v log_warning &>/dev/null; then
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/logging.sh"
fi
# Get installation recommendation for a package
get_install_recommendation() {
local package="$1"
local system_id="$2"
case "$package" in
"python")
get_python_recommendation "$system_id"
;;
"npm")
get_npm_recommendation "$system_id"
;;
"node")
get_node_recommendation "$system_id"
;;
"cmake")
get_cmake_recommendation "$system_id"
;;
"poetry")
get_poetry_recommendation "$system_id"
;;
"sqlite")
get_sqlite_recommendation "$system_id"
;;
*)
log_warning "No specific recommendation available for $package"
;;
esac
}
# Python installation recommendations
get_python_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for macOS: 'brew install python3'"
log_warning "Or download from: https://www.python.org/downloads/macos/"
;;
"linux-debian")
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install python3 python3-pip'"
;;
"linux-fedora")
log_warning "Recommended installation for Fedora: 'sudo dnf install python3 python3-pip'"
;;
"linux-redhat")
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install python3 python3-pip'"
;;
"linux-arch")
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S python python-pip'"
;;
"linux-alpine")
log_warning "Recommended installation for Alpine Linux: 'apk add python3 py3-pip'"
;;
"linux-other")
log_warning "Please install Python 3.12+ using your distribution's package manager"
log_warning "Or download from: https://www.python.org/downloads/linux/"
;;
"windows")
log_warning "Recommended installation for Windows:"
log_warning "1. Download from: https://www.python.org/downloads/windows/"
log_warning "2. Or using winget: 'winget install Python.Python.3'"
log_warning "3. Or using Chocolatey: 'choco install python'"
;;
*)
log_warning "Please download Python from: https://www.python.org/downloads/"
;;
esac
}
# NPM installation recommendations
get_npm_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for macOS: 'brew install npm'"
;;
"linux-debian")
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install npm'"
;;
"linux-fedora")
log_warning "Recommended installation for Fedora: 'sudo dnf install npm'"
;;
"linux-redhat")
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install npm'"
;;
"linux-arch")
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S npm'"
;;
"linux-alpine")
log_warning "Recommended installation for Alpine Linux: 'apk add npm'"
;;
"linux-other")
log_warning "Please install npm using your distribution's package manager"
;;
"windows")
log_warning "Recommended installation for Windows:"
log_warning "1. Install Node.js (includes npm): https://nodejs.org/en/download/"
log_warning "2. Or using winget: 'winget install OpenJS.NodeJS'"
log_warning "3. Or using Chocolatey: 'choco install nodejs'"
;;
*)
log_warning "Please install Node.js (includes npm): https://nodejs.org/en/download/"
;;
esac
}
# Node.js installation recommendations
get_node_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for macOS: 'brew install node'"
;;
"linux-debian")
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install nodejs'"
;;
"linux-fedora")
log_warning "Recommended installation for Fedora: 'sudo dnf install nodejs'"
;;
"linux-redhat")
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install nodejs'"
;;
"linux-arch")
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S nodejs'"
;;
"linux-alpine")
log_warning "Recommended installation for Alpine Linux: 'apk add nodejs'"
;;
"linux-other")
log_warning "Please install Node.js using your distribution's package manager"
;;
"windows")
log_warning "Recommended installation for Windows:"
log_warning "1. Download from: https://nodejs.org/en/download/"
log_warning "2. Or using winget: 'winget install OpenJS.NodeJS'"
log_warning "3. Or using Chocolatey: 'choco install nodejs'"
;;
*)
log_warning "Please download Node.js from: https://nodejs.org/en/download/"
;;
esac
}
# CMake installation recommendations
get_cmake_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for macOS: 'brew install cmake'"
;;
"linux-debian")
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install cmake'"
;;
"linux-fedora")
log_warning "Recommended installation for Fedora: 'sudo dnf install cmake'"
;;
"linux-redhat")
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install cmake'"
;;
"linux-arch")
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S cmake'"
;;
"linux-alpine")
log_warning "Recommended installation for Alpine Linux: 'apk add cmake'"
;;
"linux-other")
log_warning "Please install CMake using your distribution's package manager"
log_warning "Or download from: https://cmake.org/download/"
;;
"windows")
log_warning "Recommended installation for Windows:"
log_warning "1. Download from: https://cmake.org/download/"
log_warning "2. Or using winget: 'winget install Kitware.CMake'"
log_warning "3. Or using Chocolatey: 'choco install cmake'"
;;
*)
log_warning "Please download CMake from: https://cmake.org/download/"
;;
esac
}
# Poetry installation recommendations
get_poetry_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for macOS:"
log_warning "1. 'brew install poetry'"
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
;;
"linux-debian")
log_warning "Recommended installation for Debian/Ubuntu:"
log_warning "1. Using pipx (recommended): 'sudo apt install pipx && pipx install poetry'"
log_warning "2. Or using the official installer in your home directory:"
log_warning " 'curl -sSL https://install.python-poetry.org | python3 -'"
log_warning "3. Or in a virtual environment:"
log_warning " 'python3 -m venv ~/.poetry-venv && ~/.poetry-venv/bin/pip install poetry'"
log_warning " Then add ~/.poetry-venv/bin to your PATH"
;;
"linux-fedora")
log_warning "Recommended installation for Fedora:"
log_warning "1. 'sudo dnf install poetry'"
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
;;
"linux-redhat")
log_warning "Recommended installation for CentOS/RHEL:"
log_warning "1. Using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
;;
"linux-arch")
log_warning "Recommended installation for Arch Linux:"
log_warning "1. 'sudo pacman -S python-poetry'"
;;
"linux-alpine")
log_warning "Recommended installation for Alpine Linux:"
log_warning "1. 'apk add py3-poetry'"
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
;;
"linux-other")
log_warning "Recommended installation for Linux:"
log_warning "1. Using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
;;
"windows")
log_warning "Recommended installation for Windows:"
log_warning "1. Using PowerShell: '(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -'"
log_warning "2. Or using Chocolatey: 'choco install poetry'"
;;
*)
log_warning "Please install Poetry using the official installer:"
log_warning "curl -sSL https://install.python-poetry.org | python3 -"
;;
esac
}
# SQLite installation recommendations
get_sqlite_recommendation() {
local system_id="$1"
case "$system_id" in
"macos")
log_warning "Recommended installation for SQLite on macOS:"
log_warning "1. 'brew install sqlite'"
log_warning "SQLite is usually pre-installed on macOS, but this will ensure you have the latest version."
;;
"linux-debian")
log_warning "Recommended installation for SQLite on Debian/Ubuntu:"
log_warning "1. 'sudo apt update && sudo apt install sqlite3'"
;;
"linux-fedora")
log_warning "Recommended installation for SQLite on Fedora:"
log_warning "1. 'sudo dnf install sqlite'"
;;
"linux-redhat")
log_warning "Recommended installation for SQLite on CentOS/RHEL:"
log_warning "1. 'sudo yum install sqlite'"
;;
"linux-arch")
log_warning "Recommended installation for SQLite on Arch Linux:"
log_warning "1. 'sudo pacman -S sqlite'"
;;
"linux-alpine")
log_warning "Recommended installation for SQLite on Alpine Linux:"
log_warning "1. 'apk add sqlite'"
;;
"linux-other")
log_warning "Recommended installation for SQLite on Linux:"
log_warning "Please install SQLite using your distribution's package manager"
;;
"windows")
log_warning "Recommended installation for SQLite on Windows:"
log_warning "1. Download from: https://www.sqlite.org/download.html"
log_warning "2. Or using Chocolatey: 'choco install sqlite'"
;;
*)
log_warning "Please download SQLite from: https://www.sqlite.org/download.html"
;;
esac
}