(* SavePrecious items
   Luo käynnistyslevylle kansio "Säästettävää". linkitä kansioon säästettäviä kohteita, esim. 
   Eudora Folder ja selaimen kirjanmerkit ja keksit aliaksilla. 
   
   Aliasten luontia helpottaa oheinen skripti "SetPrecious".
   
   Skripti tekee varmuuskopiot tiedostoista, joihin aliakset viittaavat. Hyvä rutiini 
   vaikkapa ennen järjestelmän asennusta. Tallenna Skriptieditorilla ohjelmaksi. Jos ohjelma
   keskeytyy virheeseen, lisää sen muistivarausta Finderin "Näytä tietoja" -komennolla.
   
   2000 Tuomas Rosberg <vanhentunut>
   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 backUpFolder : ""

on run
   tell application "Finder"
      if (exists of folder "Säästettävää" of startup disk) is false then
         make new folder at startup disk with properties {name:"Säästettävää"}
         set theFolder to folder "Säästettävää" of startup disk
         open theFolder
         set position of window of theFolder to {15, 50}
         set view of window of theFolder to 2
         display dialog ¬
            "Laita avoimeen kansioon aliaksia kohteista, jotka haluat säästää. Aja sitten tämä ohjelma uudestaan." buttons ¬
            "OK" default button 1
      else -- "käynnistyslevy:Säästettävää:" on olemassa
         set theFolder to folder "Säästettävää" of startup disk
         if backUpFolder is "" then
            my askFolder()
         end if -- backUpFolder on valittu.
         set theOriginals to {}
         set theItems to every item in theFolder
         if theItems is not {} then -- kansiossa on aliaksia.    
            repeat with i in theItems
               if kind of i is not "alias" then
                  set theOriginals to theOriginals & i
               else
                  try
                     set theOriginals to theOriginals & (original item of i)
                  on error errr
                     my anError(errr)
                  end try
               end if
            end repeat
            if exists of backUpFolder then -- backUpFolderin levy on työpöydällä (ellei ole, Finder pyytää).
               try
                  duplicate theOriginals to backUpFolder with replacing
               on error errr
                  my anError(errr)
               end try
               open backUpFolder
               set position of window of backUpFolder to {25, 60}
               set view of window of backUpFolder to 2
            end if
         else -- kansiossa ei ole mitään.
            display dialog "Varmuuskopioitavaksi ei ole valittu mitään" buttons "OK" default button 1
         end if
      end if
   end tell
   return true
end run

on anError(errr)
   display dialog "Tapahtui virhe:" & errr buttons "OK" default button 1
end anError

on askFolder()
   tell application "Finder"
      repeat
         set proposedFolder to (choose folder with prompt ¬
            "Valitse kohde, johon varmuuskopiot tehdään.")
         set theDisk to disk of proposedFolder
         if startup of theDisk is true then
            display dialog ¬
               "Kannattaa varmuuskopioida muulle kuin käynnistyslevylle." buttons ¬
               {"Jatka", "Takaisin"} default button "Takaisin" with icon caution
            if button returned of result is "Jatka" then -- Käyttäjä valitsi kuitenkin käynnistyslevyn.
               set backUpFolder to proposedFolder
               exit repeat
            end if
         else
            set backUpFolder to proposedFolder
            exit repeat
         end if
      end repeat
   end tell
end askFolder