(procedure P_CopyServers

  (set i 0)
  (set PatternStr "(%")

  (while (set ServerName (select i 
      "BBS"
      "Chat"
      "Converse"
      "Datacollector"
      "FileAccess"
      "Interlink"
      "Mail"
      "Miscellaneous"
      "UserSettings"
      ""
      )
    
     )
    (( IF (IN InstallServers i)
      (
       (SET PatternStr (CAT PatternStr "|" ServerName PatternSuffix))
      )
      (
       (delete (tackon PatternPath (cat ServerName PatternSuffix)))
      )
    )
    (set i (+ i 1))
  ))

  (SET PatternStr (CAT PatternStr ")"))

  (Copyfiles
    (Source PatternSource)
    (DEST PatternPath)
    (PATTERN PatternStr)
  )
)



(procedure P_CopyCatalogs

 (set CatalogSource (tackon (tackon "Profi_Packet/Catalogs" CatalogLanguage) "ProfiPacket"))
 (set CatalogDestT (tackon CatalogDir CatalogLanguage) )

 (IF 
   (NOT (EXISTS (CatalogDestT)))
  
   ( 
    (MAKEDIR (CatalogDestT))
   )      
 )

 (set CatalogDest (tackon CatalogDestT "ProfiPacket") )

 (IF 
   (NOT (EXISTS (CatalogDest)))
  
   ( 
    (MAKEDIR (CatalogDest))
   )      
 )

 (Copyfiles
   (Source CatalogSource)
   (DEST CatalogDest)
   (PATTERN "ProfiPacket#?")
 )

 (set PatternSuffix ".catalog")
 (set PatternPath CatalogDest)
 (set PatternSource CatalogSource)
 (P_CopyServers)

)
;----------------------------------------------------------------
;----------------------------------------------------------------
;---------------------------Main procedure-----------------------
;----------------------------------------------------------------
;----------------------------------------------------------------

(Complete 0)

(SET #muidir (getassign "MUI") )

(IF (= #muidir "")
  (SET #muiverrev (getversion "libs:muimaster.library"))
  (SET #muiverrev (getversion "mui:libs/muimaster.library"))
)

(SET #muiver (/ #muiverrev 65536))
(SET #muirev (- #muiverrev (* #muiver 65536) ) )

(IF (< 19 #muiver) 
 (abort "MUI V3.8 must be installed on your system!")
) 


(welcome)


;(message "-------INOFFICIAL RELEASE-------\n\n"
;         "Don't spead it - it is not for the public")
          

(message "WARNING !  /  WARNUNG !\n\n"
         "This version of ProfiPacket is not the final release! " 
         "Many things may not work as intended, many other don't "
         "work at all. Docs are not yet available in English! "
         "You have been warned!\n\n"
         "Diese Version von ProfiPacket ist nicht die endgültige "
         "Version! Einige Funktionen könnnen noch nicht so "
         "funktionieren wie beabsichtigt, einige funktionieren "
         "überhaupt noch nicht. Die Programmbeschreibung ist "
         "unvollständig. Sie wurden gewarnt!"
        
 )

(SET InstallPath 
  (ASKDIR
    (PROMPT "Please select directory to install the program. A new drawer "
            "called ProfiPacket will be installed at this location.")
    (HELP "You have to select where to install the programs on your "
          "harddisk.")
    (DEFAULT "sys:")
    )
  )


(SET InstallLanguages

  (ASKOPTIONS

    (PROMPT "Please select the catalog files of the languages you want to "
            "install.")
    (HELP "Workbench 2.1 supports localization of programmes to your "
          "native language. You can select these languages ProfiPacket "
          "should support. (n/a) means that this language is not yet "
          "supported in ProfiPacket but ProfiPacket is prepared to "
          "support this language due to a translation offer.")
    (CHOICES "German" "French" "Dutch (n/a)")
    (DEFAULT 65535)
  )
)


(SET InstallServers 
  (ASKOPTIONS
  
    (PROMPT "Please select servers you want to install. Install all default "
            "servers if possible, otherwise some functions of the programme "
            "cannot be used.")
    (HELP "ProfiPacket need servers to handle with inputs and outputs of "
          "Packet Radio. You can write your own server to implement functions "
          "which are not yet implemented, but you should install all servers "
          "which are already checked because these are basic functions of the "
          "programme. If you want to install additional features, so you can "
           "check the unchecked servers too.")
    (CHOICES 
      "BBS.server"
      "Chat.server"
      "Converse.server"
      "Datacollector.server"
      "FileAccess.server"
      "Interlink.server"
      "Mail.server"
      "Miscellaneous.server"
      "UserSettings.server"
     )
    (DEFAULT 438)
     )
  )

(SET @default-dest (TACKON InstallPath ""))


(SET InstallDir (TACKON InstallPath "ProfiPacket") )

(SET ServerDir (TACKON InstallDir "Servers") )

(SET GlobalDir (TACKON InstallDir "GLOBAL") )

(SET TNCInitDir (TACKON InstallDir "Text/TNC_Init") )

(SET SaveDir (TACKON InstallDir "Save") )

(SET UserDir (TACKON InstallDir "User") )

(SET DataDir (TACKON InstallDir "Data") )

(SET TextDir (TACKON InstallDir "Text") )

(Set FontDir (TACKON InstallDir "Data/PCFont") )

(Set CatalogDirV023 (TACKON InstallDir "Data/Catalogs") )

(Set CatalogDir (TACKON InstallDir "Catalogs") )

(Set HelpDir (TACKON InstallDir "Text/Help") )

(Set BBSDir (TACKON InstallDir "Data/BBS") )

(Set BBSResumeDir (TACKON InstallDir "Data/BBS/Resume") )

(Set DocsDir (TACKON InstallDir "Docs") )

(Set ContribDir (TACKON InstallDir "Contrib") )

(Complete 5)

(Working)

(IF (NOT (EXISTS (InstallDir))) 
  
  (
    (MAKEDIR (InstallDir) (INFOS)  )

    )

  )


  (IF (NOT (EXISTS (DocsDir)))
    
    (
      (MAKEDIR (DocsDir) (INFOS) )
      )
    )

  (IF (NOT (EXISTS (SaveDir)))
    
    (
      (MAKEDIR (SaveDir))
      )
    )

  (IF (NOT (EXISTS (UserDir)))
    
    (
      (MAKEDIR (UserDir))
      )
    )

  (IF (NOT (EXISTS (DataDir)))
  
    (  
      (MAKEDIR (DataDir))
      )
      
    )

  (IF (NOT (EXISTS (BBSDir)))
    
    (
      (MAKEDIR (BBSDir))
      )
  
    )

  (IF (NOT (EXISTS (BBSResumeDir)))
    
    (
      (MAKEDIR (BBSResumeDir))
      )
  
    )

    
  (IF (NOT (EXISTS (TextDir)))
  
    ( 
      (MAKEDIR (TextDir))
      )
      
    )

  (IF (NOT (EXISTS (CatalogDir)))
  
    ( 
      (MAKEDIR (CatalogDir))
      )
    )


  (IF (EXISTS (CatalogDirV023) )

    (
      (DELETE (TACKON CatalogDirV023 "Deutsch/ProfiPacket.catalog"))
      (DELETE (TACKON CatalogDirV023 "English/ProfiPacket.catalog"))
      (DELETE (TACKON CatalogDirV023 "Deutsch"))
      (DELETE (TACKON CatalogDirV023 "English"))
      (DELETE (CatalogDirV023)  )
    )

  )
      
  (IF (NOT (EXISTS (HelpDir)))
  
    ( 
      (MAKEDIR (HelpDir))
      )
      
    )


  (COPYFILES
         (SOURCE "Profi_Packet/Help")
         (DEST HelpDir)
         (PATTERN "#?_H_EN#?")
         )


  (COPYFILES 
         (SOURCE "Profi_Packet/Docs")
         (DEST DocsDir)    
         (ALL)
         )

  (IF (NOT (EXISTS (ContribDir)))
  
    ( 
      (MAKEDIR (ContribDir))
      )
    )

  (IF (NOT (EXISTS (ServerDir)))
  
    ( 
      (MAKEDIR (ServerDir))
      )
    )


      
  (COPYFILES 
         (SOURCE "Profi_Packet/Contrib")
         (DEST ContribDir)    
         (ALL)
         )


  (Complete 30)

  (IF (NOT (EXISTS (TNCInitDir)))
    
    (
      (MAKEDIR (TNCInitDir))
      (COPYFILES 
         (SOURCE "Profi_Packet/TNC_Inits")
         (DEST TNCInitDir)    
         (ALL)
         )
      )
    )

  (Complete 35)

  (IF (NOT (EXISTS (GlobalDir)))
    
    (
      (MAKEDIR (GlobalDir))
      (COPYFILES 
         (SOURCE "Profi_Packet/GLOBAL")
         (DEST GlobalDir)    
         (ALL))
      )

    )

  (Complete 40)
  
  (COPYFILES
     (SOURCE "Profi_Packet/")
     (DEST InstallDir)
     (PATTERN "(%|ProfiPacket|ProfiPacket.info)")
     )


  

  (COmplete 65)

  (IF (NOT (EXISTS (FontDir))) (
    (MAKEDIR "FONTS:PCFont")
    (COPYFILES 
      (SOURCE "Profi_Packet/PCFont")
      (DEST FontDir)
      (ALL)
      )
    (COPYFILES 
      (SOURCE "Profi_Packet/")
      (DEST DataDir)
      (PATTERN "PCFont.font")
      )
    )
  )

  

  (Complete 70)

  (set PatternSuffix ".Server")
  (set PatternPath ServerDir)
  (set PatternSource "Profi_Packet/Servers")
  (P_CopyServers)
 
  (if (IN InstallLanguages 0)
    ( 

     (set CatalogLanguage "deutsch")
     (P_CopyCatalogs)
     (COPYFILES
            (SOURCE "Profi_Packet/Help")
            (DEST HelpDir)
            (PATTERN "#?_H_DEU#?")
            )
    )
  )

  (if (IN InstallLanguages 1)
    ( 

     (set CatalogLanguage "français")
     (P_CopyCatalogs)
     (COPYFILES
            (SOURCE "Profi_Packet/Help")
            (DEST HelpDir)
            (PATTERN "#?_H_FRA#?")
            )

    )
  )


  (if (IN InstallLanguages 2)
    (

     (set CatalogLanguage "nederlands")
     (P_CopyCatalogs)
     (COPYFILES
            (SOURCE "Profi_Packet/Help")
            (DEST HelpDir)
            (PATTERN "#?_H_NLD#?")
            )

    )
  )



(Complete 85)

  (Working ("Converting user database\n&\nRepairing any damages"))
  
  (RUN (CAT "Profi_Packet/Contrib/ConvertUsers "
        (TACKON DataDir "users.dat" ) ))

  


(complete 100)


