;Skrypt instalacyjny do wersji 0.22 PCBDesignera
;by Grzegorz Kraszewski 1997

(complete 0)

;*** Sprawdzam, czy jest zainstalowane MUI.

(set #muiversion (getversion "LIBS:muimaster.library"))

(if (= #muiversion 0)
    (abort "Nie zainstalowae Magic User Interface (MUI), ktrego wymaga PCBDesigner (przeczytaj dokumentacj).")
)

;*** Sprawdzam, czy jest odpowiednia wersja MUI. Ekspert dostaje dodatkowe wiadomoci.

(if (< #muiversion 720896)
    (
      (if (= @user-level 2)
          (
            (set #version (/ #muiversion 65536))
            (set #revision (- #muiversion (* #version 65536)))
            (message ("Masz zainstalowan bibliotek \"muimaster.library\" w wersji %ld.%ld, podczas gdy PCBDesigner wymaga co najmniej wersji 11.0 tej biblioteki." #version #revision))
          )
      )
      (abort "Masz zainstalowan na dysku za star wersj Magic User Interface (MUI). PCBDesigner wymaga wersji co najmniej 3.0 (przeczytaj dokumentacj).")
    )
)

;*** Zainteresujmy si katalogiem docelowym instalacji.

(set #instdir
  (askdir 
    (prompt "Gdzie mam utworzy katalog PCBDesignera?")
    (help "Muisz wybra miejsce na dysku w ktrym bdzie zainstalowany PCBDesigner. Powstanie tam katalog \"PCBDesigner\", a w nim znajd si wszystkie potrzebne pliki.")
    (default @default-dest)
  )
)

;*** Tworz pen ciek docelow.

(set #destdir
  (tackon #instdir "PCBDesigner")
)

;*** Czy instalowa dodatkowe pliki? (nowicjusz nie bdzie pytany).
;*** Wersja dla pocztkujcego.

(if (= @user-level 0)
    (
      (set #instaldoc 1)
      (set #installocpl 1)
    )
)

;*** Wersja dla zaawansowanego.

(if (= @user-level 1)
    (
      (set #bitmask
        (askoptions
          (prompt "Jakie dodatkowe elementy PCBDesignera chcesz zainstalowa?")
          (help "Wybierz dodatkowe elementy PCBDesignera, ktre co prawda nie s niezbdne do jego prawidowego dziaania, ale uatwiaj i uprzyjemniaj prac.")
          (choices "dokumentacja")
        )
      )
      (if (BITAND #bitmask $00000001)
          (set #instaldoc 1)
          (set #instaldoc 0)
      )
      (set #installocpl 1)
    )
)

;*** Wersja dla eksperta.

(if (= @user-level 2)
    (
      (set #bitmask
        (askoptions
          (prompt "Jakie dodatkowe elementy PCBDesignera chcesz zainstalowa?")
          (help "Wybierz dodatkowe elementy PCBDesignera, ktre co prawda nie s niezbdne do jego prawidowego dziaania, ale uatwiaj i uprzyjemniaj prac.")
          (choices "dokumentacja" "polskie locale")
        )
      )
      (if (BITAND #bitmask $00000001)
          (set #instaldoc 1)
          (set #instaldoc 0)
      )
      (if (BITAND #bitmask $00000002)
          (set #installocpl 1)
          (set #installocpl 0)
      )
    )
)

;*** Jeeli bdziemy nagrywa na stary to bardziej zaawansowani userzy
;*** powinni si o tym dowiedzie.

(if (> @user-level 0)
    (if (exists #destdir)
        (if (NOT (askbool
                   (prompt "UWAGA! Katalog " #destdir " ju istnieje. Czy instalujemy w nim?")
                   (help "W \"" #instdir "\" istnieje ju katalog \"PCBDesigner\". Jeeli zgodzisz si na dalsz instalacj wszystkie stare pliki PCBDesignera zostan zastpione nowymi.")
                 )
            )
            (abort "Instalacja przerwana.")
        )
    )
)

;*** Zapytajmy eksperta jeszcze raz.

(if (= @user-level 2)
    (if (NOT (askbool
               (prompt "PCBDesigner zostanie zainstalowany w katalogu " #destdir ".")
               (help "To ostatnia szansa odwrotu. Po klikniciu na \"Instaluj\" rozpocznie si kopiowanie plikw.")
               (choices "Instaluj" "Przerwij")
             )
        )
        (abort "Instalacja przerwana.")
    )
)

;*** Robimy katalog docelowy.
         
(makedir #destdir (infos))
(complete 10)

;*** Kopiowanie plikw gwnych.

(copyfiles
  (source "PCBDesigner")
  (dest #destdir)
  (infos)
  (files)
)

(complete 40)

(copyfiles
  (source "Images")
  (dest (tackon #destdir "Images"))
  (all)
)

(complete 50)

(if (= #instaldoc 1)
    (copyfiles
      (source "Docs")
      (dest (tackon #destdir "Docs"))
      (infos)
      (all)
    )
)

(complete 70)

(if (= #installocpl 1)
    (copyfiles
      (source "Catalogs")
      (dest (tackon #destdir "Catalogs"))
      (all)
    )
)

(complete 100)

(set @default-dest #instdir)

(exit)
