Ordneraktion - Ordner meldet sich wenn er gebrannt werden soll?

S

sschacht

Mitglied
Thread Starter
Dabei seit
04.07.2002
Beiträge
38
Reaktionspunkte
0
Hallo Leute,

ich weiß leider nciht wie ich es anstellen soll. Aber ich hätte gern, dass sich ein bestimmter Ordner meldet das er auf CD gebrannt werden möchte, wenn er 600 MB übersteigt und besten gleich mittels internem Brenntool oder Toast alles vorbereitet, dass man nur noch die CDR einlegen muss.

Geht dass mit Automator oder mit den Ordneraktionen?
Und wenn ja wie?

Danke für die Tipps.
Sigi
 
Hallo,

ich habe mal ein bisschen gebastelt, und herausgekommen sind zwei Scripte die genau das machen was Du eingangs beschrieben hast.

Zunächst mal das Script das die eigentliche Arbeit macht:

Code:
set a to do shell script "ls -lk [COLOR=Red]/Users/Username/Pfad/zum/Ordner/[/COLOR] | sort -n +4 | grep total"
set itemized to every word of a
set c to get last word of a as string
set d to (round c / 1024) as string
if d < [COLOR=Red]599[/COLOR] then set burn to false
if d ≥ [COLOR=Red]599[/COLOR] then set burn to true
if burn is equal to false then display dialog "Ordner ist noch nicht voll genug."
if burn is equal to true then
	display dialog "Ordner wird jetzt zum Brennen vorbereitet, temporäres DMG wird [COLOR=Red]wo auch immer[/COLOR] angelegt."
	do shell script "hdiutil create -srcfolder [COLOR=Red]/Users/Username/Pfad/zum/Ordner/wie/oben/[/COLOR] [COLOR=Red]/Users/Username/Pfad/zur/Imagedatei/[/COLOR]"
	display dialog "Brennvorgang wird gestartet. Medium eingelegt?"
	do shell script "hdiutil burn [COLOR=Red]/Users/Username/Pfad/zur/Imagedatei/[/COLOR]"
	display dialog "Brennvorgang beendet. Temporäres DMG [COLOR=Red]wo auch immer[/COLOR] wird gelöscht"
	do shell script "rm -f [COLOR=Red]/Users/Username/Pfad/zur/Imagedatei/[/COLOR]"
end if

Alle rot markierten Teile im Code müssen entweder zwingend (Pfade), oder nach Gusto (Schwellenwert der Größe (CD oder DVD, alle Angaben in MB), Dialogmeldungen) abgeändert werden.
Sieht bei mir z.B. so aus:


Code:
set a to do shell script "ls -lk [COLOR=Red]/Users/flo/Desktop/burn/[/COLOR] | sort -n +4 | grep total"
set itemized to every word of a
set c to get last word of a as string
set d to (round c / 1024) as string
if d < [COLOR=Red]599[/COLOR] then set burn to false
if d ≥ [COLOR=Red]599[/COLOR] then set burn to true
if burn is equal to false then display dialog "Ordner ist noch nicht voll genug."
if burn is equal to true then
	display dialog "Ordner wird jetzt zum Brennen vorbereitet, temporäres DMG wird [COLOR=Red]auf Desktop[/COLOR] angelegt."
	do shell script "hdiutil create -srcfolder [COLOR=Red]/Users/flo/Desktop/burn /Users/flo/Desktop/temptoburn[/COLOR]"
	display dialog "Brennvorgang wird gestartet. Medium eingelegt?"
	do shell script "hdiutil burn [COLOR=Red]/Users/flo/Desktop/temptoburn.dmg[/COLOR]"
	display dialog "Brennvorgang beendet. Temporäres DMG [COLOR=Red]auf Desktop[/COLOR] wird gelöscht"
	do shell script "rm -f [COLOR=Red]/Users/flo/Desktop/temptoburn.dmg[/COLOR]"
end if

Die Dialoge kann man auch noch rausschmeissen wenn man wirklich überhaupt nicht von dem Ding behelligt werden will. Rohling muss nicht zeitnah eingelegt werden. Wenn schon einer drin ist, schnappt sich das Script den. Ist keiner drin, und man hat die Dialoge deaktiviert, passiert so lange nichts bis man einen einlegt. Die fertige CD trägt dann den Namen des Ordners der gebrannt wird (In meinem Beispiel heisst die dann burn).
Das Script am besten als Programm ohne Startdialog und nur ausführbar an einem Ort der sinnvoll erscheint speichern.

Damit der Ordner jetzt aber auch weiss wann es soweit ist, gibt es ein zweites Script, dass dem Ordner als Ordneraktion angehängt werden muss.
Das Script:

Code:
on adding folder items to this_folder after receiving added_items
	do shell script "open -a [COLOR=Red]/Pfad/zum/obigem/Script.app[/COLOR]"
end adding folder items to

Diese Ordneraktion macht also nichts anderes als das oben als Programm abgespeicherte Script jedesmal wenn eine Datei dem Ordner hinzugefügt wird aufzurufen. Die Größenabfrage usw. findet dann im Hauptscript statt.

Möglicherweise tauchen im Betrieb noch Schwierigkeiten oder Verzwickungen auf die mir nicht untergekommen sind. Es lassen sich eben nicht immer alle Szenarien/Großkatzen testen. Die Scripte haben so wie hier stehen bei mir (unter Panther, Tiger nicht getestet) exakt die Anforderung aus dem Eingangsposting erfüllt. Sinnvolle Anregungen willkommen.

Grüße,
Flo
 
Hey lengsel,

mehr Leute wie dich braucht das Forum!

Da hat jemand ne gute Idee und du setzt sie sofort um!

Respekt und vielen Dank...

Gruß

y.
 
gibt es denn von Toast Funktionen für den Automator?
 
Zurück
Oben Unten