csv-processor/build_debian.sh

95 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# Build-Script für Debian-Paket (.deb)
# Erstellt ein installierbares Debian-Paket
set -e
PKG_NAME="csv-processor"
PKG_VERSION="2.0.0"
PKG_ARCH="amd64"
MAINTAINER="Sebastian Zell <sebastian.zell@zell-aufmass.de>"
DESCRIPTION="Professionelles Werkzeug zur Verarbeitung von CSV- und Excel-Dateien"
echo "========================================"
echo "CSV-Processor - Debian Package Build"
echo "========================================"
# Prüfe ob PyInstaller installiert ist
if ! command -v pyinstaller &> /dev/null; then
echo "PyInstaller nicht gefunden. Installiere..."
pip install pyinstaller
fi
# Build-Verzeichnis vorbereiten
echo "Bereite Build-Verzeichnis vor..."
BUILD_DIR="deb_build"
rm -rf "$BUILD_DIR" 2>/dev/null || true
mkdir -p "$BUILD_DIR/DEBIAN"
mkdir -p "$BUILD_DIR/usr/bin"
mkdir -p "$BUILD_DIR/usr/share/applications"
mkdir -p "$BUILD_DIR/usr/share/$PKG_NAME"
# Executables erstellen
echo ""
echo "Erstelle Executables mit PyInstaller..."
# CLI-Version
pyinstaller --onefile --name csv-processor-cli --clean csv_processor.py
cp dist/csv-processor-cli "$BUILD_DIR/usr/bin/"
# GUI-Version
pyinstaller --onefile --name csv-processor-gui --clean csv_processor_gui.py
cp dist/csv-processor-gui "$BUILD_DIR/usr/bin/"
# Rechte setzen
chmod 755 "$BUILD_DIR/usr/bin/csv-processor-cli"
chmod 755 "$BUILD_DIR/usr/bin/csv-processor-gui"
# Desktop-Eintrag erstellen
cat > "$BUILD_DIR/usr/share/applications/csv-processor.desktop" << EOF
[Desktop Entry]
Name=CSV-Processor
Comment=Professionelle CSV/Excel-Verarbeitung
Exec=csv-processor-gui
Icon=accessories-text-editor
Terminal=false
Type=Application
Categories=Office;Utility;
EOF
# DEBIAN/control erstellen
cat > "$BUILD_DIR/DEBIAN/control" << EOF
Package: $PKG_NAME
Version: $PKG_VERSION
Section: utils
Priority: optional
Architecture: $PKG_ARCH
Maintainer: $MAINTAINER
Description: $DESCRIPTION
CSV-Processor ist ein professionelles Werkzeug zur Verarbeitung
und Konvertierung von CSV- und Excel-Dateien. Es bietet
Spaltennamen-Mapping, Datenbereinigung, Spaltenauswahl und
Voreinstellungen für wiederkehrende Aufgaben.
EOF
# Debian-Paket bauen
echo ""
echo "Erstelle Debian-Paket..."
dpkg-deb --build "$BUILD_DIR" "dist/${PKG_NAME}_${PKG_VERSION}_${PKG_ARCH}.deb"
# Aufräumen
rm -rf "$BUILD_DIR"
rm -rf build/
rm -f *.spec
echo ""
echo "========================================"
echo "Build abgeschlossen!"
echo "========================================"
echo ""
echo "Erstelltes Paket:"
ls -la dist/*.deb
echo ""
echo "Installation mit:"
echo " sudo dpkg -i dist/${PKG_NAME}_${PKG_VERSION}_${PKG_ARCH}.deb"