Ordneraktion - Ordner meldet sich wenn er gebrannt werden soll?

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von sschacht, 08.05.2005.

  1. sschacht

    sschacht Thread Starter MacUser Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    MacUser seit:
    04.07.2002
    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
     
  2. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    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
     
  3. ynos

    ynos Gast

    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.
     
  4. kane1896

    kane1896 MacUser Mitglied

    Beiträge:
    465
    Zustimmungen:
    2
    MacUser seit:
    27.06.2005
    gibt es denn von Toast Funktionen für den Automator?
     
Die Seite wird geladen...