44 lines
1.2 KiB
Bash
Executable File
44 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build CloudRestoreAS — PyInstaller onefile portable (Linux)
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$ROOT"
|
|
|
|
echo "==============================================="
|
|
echo "CloudRestoreAS - Build Linux (onefile)"
|
|
echo "==============================================="
|
|
|
|
bash "$ROOT/packaging/scripts/download-bundled-deps.sh"
|
|
|
|
VENV="$ROOT/venv-linux"
|
|
if [[ ! -x "$VENV/bin/python" ]]; then
|
|
rm -rf "$VENV"
|
|
python3 -m venv "$VENV"
|
|
fi
|
|
"$VENV/bin/pip" install --upgrade pip -q
|
|
"$VENV/bin/pip" install -r requirements.txt -q
|
|
|
|
BUILD_DIR="${CLOUDRESTORE_BUILD_DIR:-/tmp/cloudrestore-build}"
|
|
DIST_DIR="${CLOUDRESTORE_DIST_DIR:-$ROOT/dist}"
|
|
rm -rf "$BUILD_DIR"
|
|
mkdir -p "$BUILD_DIR" "$DIST_DIR"
|
|
rm -f "$DIST_DIR/CloudRestoreAS"
|
|
|
|
echo "Ejecutando PyInstaller (onefile)..."
|
|
"$VENV/bin/python" -m PyInstaller packaging/CloudRestoreAS.spec \
|
|
--clean --noconfirm \
|
|
--distpath "$DIST_DIR" \
|
|
--workpath "$BUILD_DIR"
|
|
|
|
BIN="$ROOT/dist/CloudRestoreAS"
|
|
if [[ -f "$BIN" ]]; then
|
|
chmod +x "$BIN"
|
|
echo ""
|
|
echo "Build OK: $BIN"
|
|
echo "Distribuir solo el binario; al ejecutar crea config/ automaticamente."
|
|
else
|
|
echo "Error: no se genero el binario" >&2
|
|
exit 1
|
|
fi
|