; $VER: GMSDev Installer 20.9.98
; (Developers archive)
; Written by Michael Praschl

(complete 0)

;*** define strings ***
(set #NoGMSinstalled
  (cat "Sorry, but the user's archive has to be installed before you can install "
       "the developers archive. Please install it first!"
  )
)

(set #source-text
  (cat "Which of the example sources do you want to install?\n"
       "The sources will be installed to GMS:GMSDev/Source/"
  )
)
(set #source-help
  (cat "Most sources are already compiled, so you get some more demos.\n"
  )
)
(set #includes-text
  (cat "Which includes do you want to install?\n"
       "All includes will be copied to GMS:GMSDev/ in sub-directories "
       "called EModules or Includes."
  )
)
(set #includes-help
  (cat "The includes are copied there because they shall easily be deleted on an update, "
       "when a new version of GMS comes out. If they would be copied to some "
       "custom directory, some includes would maybe become obsolete.\n"
       "This script will also ask you which assignments you want to add to your user-startup."
  )
)
(set #ced-text
  (cat "Do you want to install ceddefaults.s to s:?"
  )
)
(set #ced-help
  (cat "This file will set the tab-stops in Cygnus Ed for good looking Asm-sources."
  )
)
(set #assigns-text
  (cat "Which assigns do you want to add?"
  )
)
(set #assigns-help
  (cat "It is suggested to create the GMSDev: assign for easy reference.\n"
       "There are also two versions for C/C++ includes, as some people have "
       "Includes: others have Include:. One of them should suffice."
  )
)
(set #nowassign-text
  (cat "Now adding the following assigns to s:user-startup:\n"
       #gmsass #isass #iass #eass
  )
)
(set #nowassign-help
  (cat "I suggest you add the assigns you need!"
  )
)

;*** start off
(welcome "Welcome to the installation of " @app-name)

(if (= (exists "GMS:" (noreq)) 2)
  ( ; then
;*** ask the user first
    (set #src
      (askoptions (prompt #source-text) (help #source-help)
        (choices "Asm" "C/C++" "AmigaE")
      )
    )

    (set #includes
      (askoptions (prompt #includes-text) (help #includes-help)
        (choices "C/C++, Asm" "AmigaE")
      )
    )

    (set #ced
      (askbool (prompt #ced-text) (help #ced-help) (default 0))
    )

    (set #assigns 11)
    (set #assigns
      (askoptions (prompt #assigns-text) (help #assigns-help)
        (choices "GMSDev:" "Includes: (C/C++)" "Include: (C/C++)" "EModules: (AmigaE)")
        (default #assigns)
      )
    )

;*** then copy all at once
    (copyfiles (source "Utils") (dest "GMS:Utils") (all))

    (set #gmsdev (bitor #src (bitor #includes #documents)))
    (if #gmsdev (makedir "GMS:GMSDev"))

    (if (<> #src 0)
      ( ;then
        (makedir "GMS:GMSDev/Source")
        (if (IN #src 0)
          (copyfiles (source "source") (dest "GMS:GMSDev/Source") (choices "Asm"))
        )
        (if (IN #src 1)
          (copyfiles (source "source") (dest "GMS:GMSDev/Source") (choices "C"))
        )
        (if (IN #src 2)
          (copyfiles (source "source") (dest "GMS:GMSDev/Source") (choices "E"))
        )
      )
    )

    (if (IN #includes 0)
      ( ;then
        (copyfiles (source "") (dest "GMS:GMSDev") (choices "Includes"))
        (if (= (exists "DLIB:" (noreq)) 1)
          (copyfiles (source "Includes/lib/dpk.o") (dest "DLIB:"))
          (copyfiles (source "Includes/lib/tags.o") (dest "DLIB:"))
        )
      )
    )
    (if (IN #includes 1)
      (copyfiles (source "") (dest "GMS:GMSDev") (choices "Emodules"))
    )

    ;(makedir "GMS:GMSDev/Logos")
    ;(makedir "GMS:GMSDev/Extras")
    (copyfiles (source "") (dest "GMS:GMSDev") (choices "Logos"))
    (copyfiles (source "") (dest "GMS:GMSDev") (choices "Documents"))
    (copyfiles (source "") (dest "GMS:GMSDev") (choices "Autodocs"))
    (copyfiles (source "DEV_REGISTER.TXT") (dest "GMS:GMSDev"))
    (copyfiles (source "DEV_REGISTER.TXT.info") (dest "GMS:GMSDev"))
    (copyfiles (source "IMPORTANT.TXT") (dest "GMS:GMSDev"))
    (copyfiles (source "IMPORTANT.TXT.info") (dest "GMS:GMSDev"))
    (copyfiles (source "LICENCE_INFO.TXT") (dest "GMS:GMSDev"))
    (copyfiles (source "LICENCE_INFO.TXT.info") (dest "GMS:GMSDev"))
    (copyfiles (source "README.TXT") (dest "GMS:GMSDev"))
    (copyfiles (source "README.TXT.info") (dest "GMS:GMSDev"))
    (copyfiles (source "Autodocs.info") (dest "GMS:GMSDev"))
    (copyfiles (source "Documents.info") (dest "GMS:GMSDev"))
    (copyfiles (source "Extras/GMS_README.TXT") (dest "GMS:GMSDev/Extras"))
    (copyfiles (source "/GMSDev.info") (dest "GMS:"))

    (if #ced
        (copyfiles (source "Extras/ceddefaults.s") (dest "S:"))
    )

    (if (<> #assigns 0)
      ( ;then
        (set #gmsass "")
        (set #isass "")
        (set #iass "")
        (set #eass "")
        (if (IN #assigns 0)
          (
            (set #gmsass "Assign GMSDev: GMS:GMSDev\n")
            (if (IN #assigns 1)
              (set #isass "Assign Includes: GMSDev:Includes ADD\n")
            )
            (if (IN #assigns 2)
              (set #iass "Assign Include: GMSDev:Includes ADD\n")
            )
            (if (IN #assigns 3)
              (set #eass "Assign EModules: GMSDev:EModules ADD")
            )
          ) ( ;else
            (if (IN #assigns 1)
              (set #isass "Assign Includes: GMS:GMSDev/Includes ADD\n")
            )
            (if (IN #assigns 2)
              (set #iass "Assign Include: GMS:GMSDev/Includes ADD\n")
            )
            (if (IN #assigns 3)
              (set #eass "Assign EModules: GMS:GMSDev/EModules ADD")
            )
          )
        )
        (startup "GMSDev" (prompt #nowassign-text) (help #nowassign-help)
          (command #gmsass)
          (command #isass)
          (command #iass)
          (command #eass)
        )
      )
    )
  ) ( ;else
    (message #NoGMSinstalled)
  )
)

(complete 100)

(set @default-dest "GMS:GMSDev/")

