iPhoto sync via AppleScript und Rsync

TweeK

Zuccalmaglios Renette
Registriert
11.08.06
Beiträge
259
Hallo Leute!

Ich hab mir ein simples Plugin mittels AppleScript geschrieben, welches mir den Ordner meines Servers mit dem Clienten syncronisiert. Das Problem was ich aber habe ist das die Datenmenge mittlerweile schon so groß ist, dass AppleScript mir ein Timeout liefert und das Script sich frühzeitig beendet.

Gebe es vielleicht auch die Möglichkeit eine Progressbar hinzuzufügen?

Hier das Script: (PS.: Bitte nicht lachen, mein erster Applescript versuch)

Code:
tell application "Finder"
    mount volume "smb://server:[email protected]/iPhoto"
end tell
display dialog "iPhoto Update starten?

Das Update wird ein gewisses Mass an Zeit beanspruchen. iPhoto startet anschließend automatisch." buttons {"OK"} default button 1

if button returned of result = "OK" then
    do shell script "/Users/familie/Documents/iPhoto_script/update.sh"
end if


Danke für eure Hilfe!

Mfg
 

TweeK

Zuccalmaglios Renette
Registriert
11.08.06
Beiträge
259
Weiß den keiner wie ich hier eine Progressbar hintzufügen konnte? So das man einen kleinen Überblick hätte, wie weit die Synchronisation abgeschlossen ist?

Mfg
 

Macmissionar

Granny Smith
Registriert
19.04.06
Beiträge
16
Hallo Tweek,

Erstens: Spreche den Finder nur an, wenn Du ihn wirklich benötigst. Und das ist in den wenigsten Fällen der Fall. Der mount-Befehl hat nichts mit dem Finder zu tun, gehört zu den Grundbefehlen.

Code:
mount volume "smb://server:[email protected]/iPhoto"
set abfr to (display dialog "iPhoto Update starten?" & return & return & "Das Update wird ein gewisses Mass an Zeit beanspruchen. iPhoto startet anschließend automatisch." buttons {"OK"} default button 1 giving up after 60)
if button returned of abfr is "OK" then
	with timeout of 4000 seconds
		do shell script "/Users/familie/Documents/iPhoto_script/update.sh &"
	end timeout
end if

So, der Rest vom bearbeiteten Script ist nur ein wenig schöner gemacht. Du hast zwei Möglichkeiten: Mit with time out kannst Du Deinen Befehlen mehr Zeit geben, ohne daß ein Time Out entsteht.
Das andere ist; Du nutzt ja Dein Mini-Script nur, damit das Shell-Script aufgerufen wird. Also könntest Du es genausogut im Hintergrund aufrufen. Das geht bekanntlich mit & am Ende. Also bekommt Dein Programm keine Rückmeldung.

Mit rsync -v innerhalb Deines Shellscriptes und einer Umleitung in >> Datei kannst Du übrigens den verbose-Modus aktivieren. So wäre es möglich, Rückmeldungen des Programmes auszulesen, was dann die Grundlage für einen Fortgangsbalken bildet.