#!/bin/bash set -e PICODULCE_DIR="$HOME/.picodulce" GIT_URL="https://github.com/nixietab/picodulce.git" DESKTOP_FILE="$HOME/.local/share/applications/picodulce.desktop" BIN_FILE="/usr/bin/picodulce" # --- Helper functions --- msg() { echo -e "\033[1;32m$1\033[0m" } err() { echo -e "\033[1;31m$1\033[0m" >&2 exit 1 } pause() { read -rp "Press Enter to continue..." } # --- Check dependencies --- msg "Checking Python3..." if ! command -v python3 >/dev/null; then err "Python3 is not installed. Please install it first." fi msg "Checking venv module..." if ! python3 -m venv --help >/dev/null 2>&1; then err "python3-venv is not available. Please install it." fi # --- Clone repo --- msg "Cloning Picodulce repo..." rm -rf "$PICODULCE_DIR" git clone "$GIT_URL" "$PICODULCE_DIR" # --- Create virtual environment --- cd "$PICODULCE_DIR" msg "Creating virtual environment..." python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # --- Create run.sh --- msg "Creating run.sh..." cat > "$PICODULCE_DIR/run.sh" <<'EOF' #!/bin/bash cd "$(dirname "$0")" if [ ! -d "venv" ]; then echo "venv folder does not exist. Creating virtual environment..." python3 -m venv venv source venv/bin/activate echo "Installing required packages..." pip install -r requirements.txt else source venv/bin/activate fi exec python picodulce.py EOF chmod +x "$PICODULCE_DIR/run.sh" # --- Create .desktop entry --- msg "Creating .desktop entry..." mkdir -p "$(dirname "$DESKTOP_FILE")" cat > "$DESKTOP_FILE" < $BIN_FILE" < "$BIN_FILE" <