-- ApplicationAlias 1.5 -- Skripti katsoo valittuun kansioon ja sen alakansioihin ja luo aliaksen -- jokaiselle löytämälleen ohjelmatiedostolle (tyyppi APPL), jonka ehdotettu muistikoko on yli 500 kt. -- (Teksturi II:n koko on 512 kt.) Aliakset sijoitetaan uuteen Omenavalikon kansioon. -- Skripti aloittaa kysymällä, missä kansiossa ohjelmatiedostoja on. -- Vaikka Macintoshin levyjä voi valita kuin kansioita, käynnistyslevyn Työpöytä -- ei osaa kertoa skriptille, missä muut levyt todellisuudessa sijaitsevat. -- 2000 Tuomas Rosberg <vanhentunut> -- Osa lähdekoodista on peräisin Applen Laita alias Omenavalikkoon -skriptistä. -- Lähdekoodi on ilmaista ja tarkoitettu yleiseen käyttöön (public domain). -- Sitä lainattessa kirjoittajan nimi on mainittava. -- Koodilla ei ole mitään takuuta, ja sen sisältävää ohjelmaa käyttävät -- toimivat omalla vastuullaan. property success : {} -- on run tell application "Finder" set the_items to selection if (count items in the_items) = 1 then if creator type of item 1 in the_items is in {"aplt", "dplt"} then -- yksi skripti valittuna, tämän skriptin tiedosto. set the_items to {} end if end if end tell ApplicationAlias(the_items) end run on open the_items ApplicationAlias(the_items) end open on ApplicationAlias(the_items) set success to false -- viritetään onnistumisen odotukset korkealle. set the_chosen_folder to "" set target_folder_name to " Ohjelmat" tell application "Finder" activate display dialog "Ole hyvä ja anna Omenavalikon kansion nimi." & return & ¬ "Ohjelmiesi aliakset sijoitetaan sinne." & return ¬ default answer target_folder_name buttons {"Peru", "OK"} default button "OK" with icon note if button returned of result is "OK" then set target_folder_name to text returned of result if not (exists of folder ¬ target_folder_name of apple menu items folder of startup disk) then -- tarkistaa, onko kansio olemassa. make new folder at apple menu items folder ¬ with properties {name:target_folder_name} -- luo uuden kansion. end if -- huom. virheen sattuessa ei viestejä. if the_items is not {} then -- kohteita on valittuina Finderissa. set AppleScript's text item delimiters to ":" set the_probe to item 1 of the_items as text if the last character of the_probe is ":" then -- se on kansio. set the_chosen_folder to item the_probe of application "Finder" else -- se on tiedosto. if class of item 1 in the_items is application file then -- se on ohjelmatiedosto. set the_count to number of text items in the_probe set the_probe to text items 1 through (the_count - 1) of the_probe as text set the_chosen_folder to item the_probe ¬ of application "Finder" -- ohjelmatiedoston kansio valittu. else -- se ei ole ohjelmatiedosto. set the_chosen_folder to (choose folder with prompt ¬ "Valitse kansio, jossa on ohjelmia tai ohjelmakansioita:") end if end if else set the_chosen_folder to (choose folder with prompt ¬ "Valitse kansio, jossa on ohjelmia tai ohjelmakansioita:") end if set the_list to every application file in the_chosen_folder -- jokainen ohjelma valitussa kansiossa. set folder_list to every folder in the_chosen_folder -- jokainen alakansio valitussa kansiossa. repeat with the_app in the_list my make_alias(the_app, target_folder_name) end repeat repeat with sub_folder in folder_list try -- muuten roskakorista ja muista kuin käynnistyslevystä virheilmoituksia, jos työpöytäkansio valittuna. set the_list to every application file in sub_folder -- jokainen ohjelmatiedosto alakansiossa. repeat with the_app in the_list my make_alias(the_app, target_folder_name) end repeat on error end try end repeat end if if success is true then open folder target_folder_name of apple menu items folder of startup disk set selected_window to window of folder target_folder_name of apple menu items folder of startup disk set view of selected_window to 2 set popup of selected_window to true -- vain systeemissä 8. set pulled open of selected_window to true -- vain systeemissä 8. else -- yhtään aliasta ei luotu. if (exists of folder target_folder_name of apple menu items folder of startup disk) is true then set target_folder_contents to every item in folder target_folder_name of apple menu items folder of startup disk if target_folder_contents is {} then delete folder target_folder_name of apple menu items folder of startup disk end if end if if (exists of folder target_folder_name of apple menu items folder of startup disk) is true then set target_folder_contents to every item in folder target_folder_name of apple menu items folder of startup disk if target_folder_contents is {} then delete folder target_folder_name of apple menu items folder of startup disk end if end if display dialog ¬ "Yhtään aliasta ei luotu." buttons "OK" default button 1 end if end tell end ApplicationAlias on make_alias(the_app, target_folder_name) tell application "Finder" try -- Finderin voi olla mahdotonta tulkita vanhojen ohjelmien ehdotettua kokoa. set s_size to suggested size of the_app if s_size is greater than 500000 then make new alias file at folder target_folder_name ¬ of apple menu items folder of startup disk to the_app set success to true end if on error return "Ohjelman " & name of the_app & " ehdotettu muistikoko puuttuu. Jatkan." end try end tell end make_alias