• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Frühling ist auch in den eingesandten Fotos deutlich zu erkennen. Zeigt uns, wer Euer Favorit ist! hier geht es lang für Euer Voting --> Klick

dmg mounten, iPhoto starten, beim Beenden dmg unmounten

ManuelW

Pferdeapfel
Registriert
01.02.09
Beiträge
78
Hallo Leute,

ich möchte meine Datenbank für iPhoto auf einem SMB Netzlaufwerk ablegen. Dazu muss ich die Datenbank allerdings in ein
Image packen, da es sonst auf einer SMB Share nicht funktioniert.

Nun möchte ich, dass beim Start von iPhoto das Image eingehangen und beim Beenden wieder ausgehangen wird.
Der beste Weg wird dazu ein Applescript sein, oder liege ich da falsch?

Ein paar Zeilen habe ich schon zusammen gesucht
Code:
tell application "Finder"
  open ":Pfad:zum:iPhoto_Bibliothek.dmg"
  tell Application "iPhoto" run
  end tell
end tell

beim Aushängen des Images wird Befehlt sicher "close..." lauten?
Wie kann ich aber nun übermitteln, das iPhoto noch läuft, bzw das es beendet wurde?

Danke für ein paar Tipps.

PS: Ich weiss es gibt auch "Do Something When" http://hohabadu.de/?APPLESCRIPT/Tools#DSW
Aber ich möchte ungern die ganze Zeit ein Programm im Hintergrund laufen haben, was Ressourcen kostet, da ich das nur für iPhoto benötige und iPhoto eigentlich nicht so oft nutze. Ich möchte es meinen Mitnutzern lediglich vereinfachen.
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
AFAIK: Mit Applescript alleine ginge das nicht ohne einen Backgroundprocess.

Vielleicht wenn man beim Starten die PID von iPhoto irgendwo hinschreibt und einen lauchd Job startet, welcher periodisch checkt, ob die PID noch da ist. Wenn nicht ein Script zum unmounten starten und auch gleich den launchd Job beenden.

Kompliziert.

Eine andere Idee wäre es, iPhoto selbst ein wenig zu hacken. Man ändert die executable in iPhoto's Info.plist durch ein Script in iPhoto.app/Contents/MacOS/starter.sh. Dieses Script checkt ob der Server da ist. Wenn nein, startets es iPhoto mit der default Library. Wenn ja, versucht es zu verbinden. Klappt das nicht, wieder standard Library. Klappt's, mountet es deine DMG (ich würde übrigens ein Sparsebundle verwenden), ändert die Library auf die gemountete DMG, startet iPhoto in nem Background Prozess und checkt periodisch ob dieser noch da ist, wenn nicht wird die DMG geunmounted und die Library wieder auf Standard zurückgesetzt. Aber auch hier haste einen Background Prozess (dessen Ressourcenauslastung allerdings vernachlässigbar ist).

Sowas hab ich noch nie probiert. Ist nur so ne irrwitzige Idee, die mir grad durch den Kopf gegangen ist. :D


Ich glaube einfacher als mit DSW kriegste es nicht. :p
 

ManuelW

Pferdeapfel
Registriert
01.02.09
Beiträge
78
Oki, danke für deine Infos.

Ich habe es jetzt mit nem einfachen Applescript zum Einhängen des Image und DSW zum Ausfähren diverser Aktionen gemacht :)