diff --git a/install-universal.sh b/install-universal.sh new file mode 100644 index 0000000..e4e2eaa --- /dev/null +++ b/install-universal.sh @@ -0,0 +1,110 @@ +#!/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" <