Kompilier-Funktion in eigenes Script ausgelagert.

This commit is contained in:
2026-08-17 14:38:32 +02:00
parent 7acdfe8927
commit eb0b4d2c61
2 changed files with 15 additions and 67 deletions
@@ -64,68 +64,6 @@ property defaultWriteDebugLog : "false"
property defaultShowReadme : "true" property defaultShowReadme : "true"
property defaultDryRunPreviewPath : "/tmp/DT-Belegversand-preview.txt" property defaultDryRunPreviewPath : "/tmp/DT-Belegversand-preview.txt"
(*
compileAllScripts(basePath)
--------------------------
Kompiliert alle AppleScript-Quellen (.applescript) zu ausführbaren Scripts (.scpt).
WARUM:
- Im Git-Repo liegen nur .applescript-Dateien (Plaintext für Versionskontrolle)
- AppleScript kann aber nur .scpt-Dateien (kompiliert) laden via "load script"
- Nach git clone sind nur .applescript vorhanden → kein Versand möglich
WAS:
- Iteriert über alle 6 Scripts im Projekt
- Ruft osacompile auf (macOS Tool)
- Liest .applescript-Quelle
- Schreibt .scpt-Binary
- Löscht die .applescript danach (sauberer: nur .scpt bleibt)
PFAD-PROBLEM:
- basePath MUSS absolut sein (ab Home, mit do shell script "echo ~")
- Relative Pfade funktionieren nicht zuverlässig in AppleScript
- Deshalb wird basePath als Parameter übergeben, nicht lokal definiert
WICHTIG:
- Diese Funktion wird nur beim Setup aufgerufen (nach git clone)
- Sie ist kein Fehler, wenn .applescript nicht existiert (z.B. bei AirDrop-Kopie)
*)
on compileAllScripts(basePath)
tell application id "DNtp"
my writeDebug("compileAllScripts: Start")
end tell
set filesToCompile to {"START.applescript", ¬
"Helpers/show_mail_templates.applescript", ¬
"Helpers/create-year-cycle.applescript", ¬
"Helpers/uuid_anzeigen.applescript", ¬
"Helpers/scripts/_belegversand_setup.applescript", ¬
"Helpers/scripts/_belegversand.applescript"}
repeat with fileName in filesToCompile
set sourceFile to basePath & "/" & fileName
set outputFile to basePath & "/" & (text 1 thru -13 of fileName) & ".scpt"
try
do shell script "osacompile -o " & quoted form of outputFile & " " & quoted form of sourceFile
-- Nach Kompilierung: .applescript löschen
do shell script "rm " & quoted form of sourceFile
tell application id "DNtp"
my writeDebug("Compiled & removed: " & filename)
end tell
on error errMsg
tell application id "DNtp"
my writeDebug("Compile ERROR: " & filename & " - " & errMsg)
end tell
end try
end repeat
tell application id "DNtp"
my writeDebug("compileAllScripts: Done")
end tell
end compileAllScripts
(* (*
runSiblingScript(scriptFileName) runSiblingScript(scriptFileName)
-------------------------------- --------------------------------
@@ -136,8 +74,6 @@ Verwendung:
- bei vorhandener Konfiguration wird das Hauptscript _belegversand.scpt gestartet - bei vorhandener Konfiguration wird das Hauptscript _belegversand.scpt gestartet
*) *)
on runSiblingScript(scriptFileName) on runSiblingScript(scriptFileName)
-- Absolute Basis-Path (Home + fest Installation)
set basePath to (do shell script "echo ~") & basePath
set targetPath to basePath & "/Helpers/scripts/" & scriptFileName set targetPath to basePath & "/Helpers/scripts/" & scriptFileName
try try
@@ -686,9 +622,6 @@ on run
-- Absolute Basis-Path für Script-Kompilierung -- Absolute Basis-Path für Script-Kompilierung
set basePath to (do shell script "echo ~") & basePath set basePath to (do shell script "echo ~") & basePath
compileAllScripts(basePath)
set compileHint to return & return & "✓ Scripts kompiliert"
display dialog "Belegversand wurde eingerichtet." & return & return & ¬ display dialog "Belegversand wurde eingerichtet." & return & return & ¬
"Datenbank-Wurzel: " & dbRootName & return & ¬ "Datenbank-Wurzel: " & dbRootName & return & ¬
"Belege-Gruppe: " & belegeRootName & return & ¬ "Belege-Gruppe: " & belegeRootName & return & ¬
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
set -e
REPO_ROOT="$(cd "$(dirname "$0")" && pwd)"
echo "Compiliere Belegversand AppleScripts..."
osacompile -o "$REPO_ROOT/START.scpt" "$REPO_ROOT/START.applescript"
osacompile -o "$REPO_ROOT/Helpers/show_mail_templates.scpt" "$REPO_ROOT/Helpers/show_mail_templates.applescript"
osacompile -o "$REPO_ROOT/Helpers/create-year-cycle.scpt" "$REPO_ROOT/Helpers/create-year-cycle.applescript"
osacompile -o "$REPO_ROOT/Helpers/uuid_anzeigen.scpt" "$REPO_ROOT/Helpers/uuid_anzeigen.applescript"
osacompile -o "$REPO_ROOT/Helpers/scripts/_belegversand_setup.scpt" "$REPO_ROOT/Helpers/scripts/_belegversand_setup.applescript"
osacompile -o "$REPO_ROOT/Helpers/scripts/_belegversand.scpt" "$REPO_ROOT/Helpers/scripts/_belegversand.applescript"
echo "✓ Fertig!"