Další akce Automatoru - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Odkud pochází fotografka Anne Erhard?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Další akce Automatoru

8. června 2005, 00.00 | Dnes budeme pokračovat – bohužel, nejen v přehlídce akcí, ale také v popisu podrazů. Na řadě je skupina Automator; ta obsahuje některé pomocné a řídící akce, jež se hodí do kteréhokoli pracovního postupu. Takřka všechny akce z této skupiny dokáží zpracovat libovolný vstup, a bez jakékoli změny jej zkopírují na svůj výstup.

Minule jsme si začali povídat o akcích Automatoru; seznámili jsme se s akcemi ze skupiny Address Book, a hlavně jsme si ukázali několik "podrazů", s nimiž se tu a tam při práci s Automatorem můžeme setkat (týká se verse současné ve chvíli psaní tohoto textu, tedy 10.4.1).

Skupina Automator

Dnes budeme pokračovat – bohužel, nejen v přehlídce akcí, ale také v popisu podrazů. Na řadě je skupina Automator; ta obsahuje některé pomocné a řídící akce, jež se hodí do kteréhokoli pracovního postupu. Takřka všechny akce z této skupiny dokáží zpracovat libovolný vstup, a bez jakékoli změny jej zkopírují na svůj výstup.

První skupina akcí umožňuje do jisté míry řídit běh pracovních postupů: je zde akce Pause, jež prostě přeruší na chvíli běh postupu, akce Ask for Confirmation, jejímž prostřednictvím může uživatel pracovní postup přerušit, a také akce Wait for User Action, jež je určena k tomu, aby si pracovní postup vyžádal od uživatele nějakou akci (třeba, navážeme-li na akce, jež již známe z minulého dílu, "vyber v Address Booku ty, jimž chceš rozeslat e-mail"), dříve, než bude pracovní postup pokračovat.

Sestavujeme-li složitější pracovní postup, může být k nezaplacení akce View Results, jež zobrazí výsledek minulé akce (a předá jej beze změny akci následující). Nejsme-li si tedy zcela jisti, kde je v pracovním postupu problém, můžeme mezi každé dvě jeho akce vložit akci View Results a sledovat, co se vlastně děje (ale pozor, než se do toho pustíte, čtěte dále!). Jedna malá obtíž spočívá v tom, že akce občas má tendenci zobrazovat výsledky v ne právě nejčitelnějším formátu – následující obrázek to ilustruje na zobrazení souborů a složek; o druhé se zmíníme za chvilku:

Nejzajímavější akce ze skupiny Automator jsou však ty, jejichž jména začínají slůvkem "Run" – ty totiž aspoň teoreticky umožňují v rámci pracovního postupu využít plnou sílu všech služeb a možností, jež Mac OS X nabízí. Zatímco pomocí akce Run Workflow můžeme "pouze" vnořovat akce do sebe a vytvářet tak "podprogramy", akce Run AppleScript a Run Shell Script umožňují spustit libovolný program, napsaný v jazyce AppleScript, nebo jakýkoli řádkový program. Z trochu jiného soudku pak je akce Run Web Service, jež dokáže do pracovního postupu vložit využití některé z webových služeb Internetu.

To je všechno moc hezké, jenže právě ve spouštění shellových skriptů je jeden nepříjemný podraz: Automator sice v zásadě dokáže navzájem převádět data různých typů (a také to dá najevo tím, že klidně "propojí zobáčky" – srovnejte to s případem z minulého článku, kdy různé akce ze skupiny Address Book pracovaly s "na první pohled" vzájemně nekompatibilními daty, "zobáčky" se nepropojily a argumenty se zobrazily červeně), jenže... soubory a složky na text převádí špatně, takže to prostě nefunguje, ani přes standardní vstup (jak ukazuje obrázek), ani prostřednictvím argumentů příkazového řádku (pak samozřejmě namísto příkazu cat použijeme příkaz echo), ačkoli vše se na první pohled zdá být zcela v pořádku:

Řešení existuje, ale není triviální: je nutné do pracovního postupu doplnit explicitně převod souborů a složek na korektní jména. Bylo by možné naprogramovat na to speciální akci v Cocoa, ale jelikož – jak jsme si před chvilkou řekli – Automator dokáže přímo spustit zadaný program v AppleScriptu, je jednodušší pro převod jmen použít právě AppleScript. Odpovídající program vypadá takto:

on run {input, parameters}

    set output to {}
    repeat with i from 1 to length of input
        set x to item i of input
        set output to output & {quoted form of POSIX path of x}
    end repeat
    return output
end run

a pokud jej do pracovního postupu vložíme, vše "zázračně" začne fungovat:

Bohužel pro dnešek s podrazy ještě nekončíme – ten poslední, který si ukážeme, sice nijak neomezuje funkčnost pracovních postupů, ale zato může velmi zákeřně zkomplikovat jejich tvorbu a ladění.

Řekli jsme si před chvílí, že "akce View Results výsledek minulé akce předá beze změny akci následující; můžeme tedy mezi každé dvě akce vložit akci View Results a sledovat, co se vlastně děje"? Inu, zdá se, že to není tak docela pravda: bohužel se musím přiznat, že v tomto případě se mi nepodařilo zjistit, co přesně je příčinou, ale existuje nejméně jedna situace, v níž po vložení akce View Results pracovní postup přestane fungovat!

Speciálně, náš pracovní postup s pomocným AppleScriptem pro převod souborů a složek na korektní jména přestane správně fungovat, vložíme-li akci View Results mezi získání souborů a jejich převod pomocí AppleScriptu – v takovém případě AppleScript vrátí prázdný seznam jmen:

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Trochu mimi mísu , ale čtěte

Autor: Bufobufo Muž

Založeno: 08.06.2005, 08:25
Odpovědí: 0

http://ekonomika.idnes.cz
/ekonomika.asp?r=ekonomik
a&c=A050607_220855_ekonom
ika_bih&t=A050607_220855_
ekonomika_bih&r2=ekonomik
a

Odpovědět na příspěvek

Je to pro programatory nebo pro laiky ?

Autor: ED Muž

Založeno: 08.06.2005, 08:48
Odpovědí: 0

Vazeny pane Cado, velmi si vazim Vasi odbornosti ale mozna by to v tomto serialku o Automatoru chtelo trochu ubrat plyn a napred ho priblizit lidem. Mam pocit ze ctu dalsi serial o programovani. A to myslim Automator byt tak uplne nemel. Chapu ze jako profesionalovi Vam vadi spousta chyb, ale pokud vlastne pisete jen o tom co vsechno je spatne, laik si udela zaver: BACHA, tomuhle se vyhni obloukem. A to myslim, ani Vy nechcete. Chapu ze bez urcitych zakladu a pochopeni principu to nejde, ale tady mam pocit ze me v autoskole uci jak serizovat motor. Ja bych radeji napred vedel jak se rozjet. Motor mi seridi v servisu, staci kdyz vim ze tam je. Diky a tesim se na pokracovani .

Odpovědět na příspěvek

RE: Je to pro programatory nebo pro laiky ?

Autor: JiK Muž

Založeno: 08.06.2005, 23:13

Souhlasim, je to nestravitelne a potrebovalo by to MNOHEM vic praktickych prikladu. Proste ukazat, ze to praci nepridava, ale ulehcuje.

Odpovědět na příspěvek

automator

Autor: mij Muž

Založeno: 08.06.2005, 17:04
Odpovědí: 0

Ja jsem s clanky spokojen, zaklady si prectu v manualu. Kde ale tyhle "podrazy" tak uplne (pokud vubec) podchycene nejsou.

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: