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

(complete 0)

;*********** Sprawdzam, czy jest zainstalowane MUI.

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

(if (= #muiversion 0)
    (abort "Nie zainstalowaîeô Magic User Interface (MUI), którego wymaga PCBDesigner (przeczytaj dokumentacjë).")
)

;*********** Sprawdzam, czy jest odpowiednia wersja MUI. Ekspert dostaje dodatkowe wiadomoôci.

(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 którym bëdzie zainstalowany PCBDesigner. Powstanie tam katalog \"PCBDesigner\", a w nim znajdâ sië wszystkie potrzebne pliki.")
    (default @default-dest)
  )
)

;*********** Tworzë peînâ ôcieûkë docelowâ.

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

;*********** Czy instalowaê dodatkowe pliki? (nowicjusz nie bëdzie pytany).

;*********** Wersja dla poczâtkujâcego.

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

;*********** Wersja dla zaawansowanego.

(if (= @user-level 1)
    (
      (set #bitmask
        (askoptions
          (prompt "Jakie dodatkowe elementy PCBDesignera chcesz zainstalowaê?")
          (help "Wybierz dodatkowe elementy PCBDesignera, które co prawda nie sâ niezbëdne do jego prawidîowego dziaîania, ale uîatwiajâ i uprzyjemniajâ pracë.")
          (choices "dokumentacja")
        )
      )
      (if (BITAND #bitmask $00000001)
          (set #instaldocpl 1)
          (set #instaldocpl 0)
      )
      (set #installocpl 1)
      (set #instalcdct 0)
      (set #instaldoc 0)
    )
)

;*********** Wersja dla eksperta.

(if (= @user-level 2)
    (
      (set #bitmask
        (askoptions
          (prompt "Jakie dodatkowe elementy PCBDesignera chcesz zainstalowaê?")
          (help "Wybierz dodatkowe elementy PCBDesignera, które co prawda nie sâ niezbëdne do jego prawidîowego dziaîania, ale uîatwiajâ i uprzyjemniajâ pracë.")
          (choices "dokumentacja polska" "polskie locale" "pliki .cd i .ct" "dokumentacja angielska")
        )
      )
      (if (BITAND #bitmask $00000008)
          (set #instaldoc 1)
          (set #instaldoc 0)
      )
      (if (BITAND #bitmask $00000002)
          (set #installocpl 1)
          (set #installocpl 0)
      )
      (if (BITAND #bitmask $00000004)
          (set #instalcdct 1)
          (set #instalcdct 0)
      )
      (if (BITAND #bitmask $00000001)
          (set #instaldocpl 1)
          (set #instaldocpl 0)
      )
    )
)

;*********** Jeûeli bëdziemy 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? (ikony nie zostanâ zmienione)")
                   (help "W \"" #instdir "\" istnieje juû katalog \"PCBDesigner\". Jeûeli zgodzisz sië na dalszâ instalacjë wszystkie stare pliki PCBDesignera (oprócz ikon) zostanâ zastâpione nowymi. Ikony pozostanâ nietkniëte, wiëc nie bëdzie trzeba ich od nowa ustawiaê.")
                 )
            )
            (abort "Instalacja przerwana.")
        )
    )
)

;*********** Robimy katalog docelowy.
         
(makedir #destdir)

(complete 10)

;*********** Kopiowanie pliku gîównego.

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

(complete 30)

;*********** Kopiowanie ikonek programu.

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

(complete 50)

;*********** Kopiowanie angielskiej dokumentacji.

(if (= #instaldoc 1)
    (
      (copyfiles
        (source "Docs/PCBDesigner.guide")
        (dest (tackon #destdir "Docs"))
      )
      (if (NOT (exists (tackon #destdir "Docs/PCBDesigner.guide.info")))
          (copyfiles
            (source "Docs/PCBDesigner.guide.info")
            (dest (tackon #destdir "Docs"))
          )
      )
      (copyfiles
        (source "Docs/AFD-COPYRIGHT")
        (dest (tackon #destdir "Docs"))
      )
    )
)

;*********** Kopiowanie polskiej dokumentacji.

(if (= #instaldocpl 1)
    (
      (copyfiles
        (source "Docs/PCBDesignerPL.guide")
        (dest (tackon #destdir "Docs"))
      )
      (if (NOT (exists (tackon #destdir "Docs/PCBDesignerPL.guide.info")))
          (copyfiles
            (source "Docs/PCBDesignerPL.guide.info")
            (dest (tackon #destdir "Docs"))
          )
      )
      (copyfiles
        (source "Docs/AFD-COPYRIGHT.pl")
        (dest (tackon #destdir "Docs"))
      )
    )
)

(complete 70)

;*********** Kopiowanie polskich lokali.

(if (= #installocpl 1)
    (
      (makedir (tackon #destdir "Catalogs"))
      (copyfiles
        (source "Catalogs/polski/pcbdesigner.catalog")
        (dest (tackon #destdir "Catalogs/polski"))
      )
    )
)

(complete 85)

;*********** Kopiowanie plików .cd i .ct.

(if (= #instalcdct 1)
    (copyfiles
      (source "Catalogs")
      (choices "pcbdesigner.ct" "pcbdesigner.cd")
      (dest (tackon #destdir "Catalogs"))
    )
)

(complete 95)

;*********** Kopiowanie ikon.

;*********** Kopiowanie ikony katalogu.

(if (NOT (exists (tackon #instdir "PCBDesigner.info")))
    (copyfiles
      (source "PCBdrawer.icon")
      (newname "PCBDesigner.info")
      (dest #instdir)
    )
)

;*********** Kopiowanie ikony programu.

(if (NOT (exists (tackon #destdir "PCBDesigner.info")))
    (copyfiles
      (source "PCBDesigner.info")
      (dest #destdir)
    )
)

;*********** Kopiowanie ikony kalalogu Docs.

(if (AND (= #instaldoc 1) (NOT (exists (tackon #destdir "Docs.info"))))
    (copyfiles
      (source "Docs.info")
      (dest #destdir)
    )
)

(complete 100)

(set @default-dest #instdir)

(exit)
