add scripts
This commit is contained in:
parent
f524243291
commit
f62da48585
@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
./.venv/bin/pyinstaller --noconfirm --clean --name car_ui --windowed ./main.py
|
||||
@ -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
96
scripts/build.sh
Normal 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
43
scripts/deploy.sh
Normal 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
33
scripts/run.sh
Normal 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"
|
||||
@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
python3 -m venv ./.venv
|
||||
./.venv/bin/pip install -r ./requirements.txt
|
||||
Loading…
x
Reference in New Issue
Block a user