#!/bin/sh # Construye el programa de escritorio de Caudal: un solo fichero que lleva # dentro su Python y se usa desde el navegador, sin instalar nada. # sh empaquetado/escritorio/construir.sh [carpeta de trabajo] # Deja el fichero en /dist/caudal. Vale para sistemas # iguales o más nuevos que aquel en el que se construye, y para su misma # arquitectura. Necesita python3 con venv e internet (baja PyInstaller y las # dependencias de Caudal a un entorno propio dentro de la carpeta de trabajo). set -eu RAIZ="$(cd "$(dirname "$0")/../.." && pwd)" OBRA="${1:-$RAIZ/empaquetado/escritorio/obra}" mkdir -p "$OBRA" python3 -m venv "$OBRA/venv" "$OBRA/venv/bin/pip" install --quiet --upgrade pip "$OBRA/venv/bin/pip" install --quiet -r "$RAIZ/programa/requirements.txt" "pyinstaller>=6" cd "$OBRA" "$OBRA/venv/bin/pyinstaller" --noconfirm --clean --onefile --name caudal \ --paths "$RAIZ/programa" \ --add-data "$RAIZ/programa/cartera/web:cartera/web" \ --add-data "$RAIZ/programa/cartera/ejemplo:cartera/ejemplo" \ --add-data "$RAIZ/programa/cartera/fiscal/reglas:cartera/fiscal/reglas" \ --add-data "$RAIZ/programa/cartera/serie_btc_eur.csv:cartera" \ --add-data "$RAIZ/programa/cartera/serie_ipv.json:cartera" \ --add-data "$RAIZ/programa/cartera/serie_tierra.json:cartera" \ --add-data "$RAIZ/programa/cartera/serie_vpo.json:cartera" \ --distpath "$OBRA/dist" --workpath "$OBRA/build" --specpath "$OBRA" \ "$RAIZ/empaquetado/escritorio/caudal.py" ls -l "$OBRA/dist/caudal"