add scripts

This commit is contained in:
cheykrym 2026-09-15 15:53:41 +03:00
parent f524243291
commit f62da48585
7 changed files with 172 additions and 17 deletions

View File

@ -1,4 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
./.venv/bin/pyinstaller --noconfirm --clean --name car_ui --windowed ./main.py

View File

@ -1,3 +0,0 @@
#!/usr/bin/env bash
./.venv/bin/python3 ./main.py

View File

@ -1,5 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
export DISPLAY=:0
./.venv/bin/python3 ./main.py 2>&1 | tee debug.log

96
scripts/build.sh Normal file
View File

@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"
VENV_DIR="$PROJECT_DIR/.venv"
REQUIREMENTS="$PROJECT_DIR/requirements.txt"
SPEC_FILE="$PROJECT_DIR/car_ui.spec"
DIST_DIR="$PROJECT_DIR/dist/car_ui"
echo "==> Car UI build"
echo " Project: $PROJECT_DIR"
# --------------------------------------------------
# Check project files
# --------------------------------------------------
if [[ ! -f "$REQUIREMENTS" ]]; then
echo "ERROR: requirements.txt not found:"
echo " $REQUIREMENTS"
exit 1
fi
if [[ ! -f "$SPEC_FILE" ]]; then
echo "ERROR: car_ui.spec not found:"
echo " $SPEC_FILE"
exit 1
fi
# --------------------------------------------------
# Create virtual environment
# --------------------------------------------------
if [[ ! -d "$VENV_DIR" ]]; then
echo "==> Creating virtual environment"
if ! command -v python3 >/dev/null 2>&1; then
echo "ERROR: python3 is not installed"
exit 1
fi
python3 -m venv "$VENV_DIR"
else
echo "==> Virtual environment already exists"
fi
PYTHON="$VENV_DIR/bin/python"
PIP="$VENV_DIR/bin/pip"
# --------------------------------------------------
# Install dependencies
# --------------------------------------------------
echo "==> Installing dependencies"
"$PIP" install --upgrade pip
"$PIP" install -r "$REQUIREMENTS"
# --------------------------------------------------
# Check PyInstaller
# --------------------------------------------------
if [[ ! -x "$VENV_DIR/bin/pyinstaller" ]]; then
echo "ERROR: PyInstaller is not installed."
echo " Add pyinstaller to requirements.txt"
exit 1
fi
# --------------------------------------------------
# Build
# --------------------------------------------------
echo "==> Building Car UI"
cd "$PROJECT_DIR"
"$VENV_DIR/bin/pyinstaller" \
--noconfirm \
--clean \
"$SPEC_FILE"
# --------------------------------------------------
# Verify result
# --------------------------------------------------
if [[ ! -x "$DIST_DIR/car_ui" ]]; then
echo "ERROR: Build failed."
echo " Executable not found:"
echo " $DIST_DIR/car_ui"
exit 1
fi
echo
echo "==> Build complete"
echo " $DIST_DIR/car_ui"

43
scripts/deploy.sh Normal file
View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"
SOURCE_DIR="$PROJECT_DIR/dist/car_ui"
INSTALL_DIR="/opt/car_ui"
SERVICE="car-ui.service"
if [[ $EUID -ne 0 ]]; then
echo "ERROR: deploy.sh must be run as root."
echo
echo "Run:"
echo " sudo $0"
exit 1
fi
if [[ ! -x "$SOURCE_DIR/car_ui" ]]; then
echo "ERROR: Build not found:"
echo " $SOURCE_DIR/car_ui"
echo
echo "Run scripts/build.sh first."
exit 1
fi
echo "==> Stopping $SERVICE"
systemctl stop "$SERVICE" 2>/dev/null || true
echo "==> Installing Car UI to $INSTALL_DIR"
rm -rf "$INSTALL_DIR"
mkdir -p "$INSTALL_DIR"
cp -a "$SOURCE_DIR/." "$INSTALL_DIR/"
echo "==> Starting $SERVICE"
systemctl start "$SERVICE"
echo
echo "==> Deployment complete"
echo " $INSTALL_DIR/car_ui"

33
scripts/run.sh Normal file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"
VENV_DIR="$PROJECT_DIR/.venv"
MAIN="$PROJECT_DIR/main.py"
LOG_FILE="$PROJECT_DIR/debug.log"
if [[ ! -x "$VENV_DIR/bin/python3" ]]; then
echo "ERROR: Virtual environment not found."
echo "Run:"
echo " ./scripts/build.sh"
exit 1
fi
if [[ ! -f "$MAIN" ]]; then
echo "ERROR: main.py not found:"
echo " $MAIN"
exit 1
fi
export DISPLAY="${DISPLAY:-:0}"
echo "==> Starting Car UI"
echo " DISPLAY=$DISPLAY"
echo " Python: $VENV_DIR/bin/python3"
echo
cd "$PROJECT_DIR"
"$VENV_DIR/bin/python3" "$MAIN" 2>&1 | tee "$LOG_FILE"

View File

@ -1,5 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
python3 -m venv ./.venv
./.venv/bin/pip install -r ./requirements.txt