packages feed

bamse-0.9.3: templates/SOE.hs

--------------------------------------------------------------------
-- |
-- Module      : SOE
-- Description : Specification/template for the SOE installer builder.
-- Copyright   : (c) Sigbjorn Finne, 2004-2009
-- License     : BSD3
--
-- Maintainer  : Sigbjorn Finne <sof@forkIO.com>
-- Stability   : provisional
-- Portability : portable
--
-- To create your own installer, you need to supply a Haskell module
-- which exports functions and values that together define the
-- functionality (and contents) of your package;
-- see Base.hs just what those exports are.
--
-- [Having Haskell as the only 'specification language' for packages
--  is not a goal. ]
--------------------------------------------------------------------
module SOE where

import MSIExtra
import Util.Dir
import Package

defaultOutFile = "SOE.msi"
srcDir = "c:\\src"

pkg :: Package
pkg = Package
      { name 	       = "SOE"
      , title          = "School of Expression Software"
      , productVersion = "1.0.0.0"
      , author         = "Paul Hudak"
      , comment        = "Software accompanying textbook"
      , date           = pkg_date
      , revisionGUID   = "{07a7cf12-5509-45d3-92d3-826b95dde09f}"
      , packageGUID    = "{79a39c17-1723-437f-a415-b7ca566fa96b}"
      , creationTime   = pkg_date
      }
 where
  pkg_date = "13/01/2002 23:00:00"

webSite :: String
webSite = "http://haskell.org/soe"

bannerBitmap :: Maybe FilePath
bannerBitmap = Just "c:/src/bamse/soe/banner.bmp"

registry :: [RegEntry]
registry 
 = haskellProject "SOE"
 		  [ hugsPath "[TARGETDIR]src;[TARGETDIR]graphics\\lib\\win32;[TARGETDIR]haskore\\src" ]


hugsPath val = ("hugsPath", val)

haskellProject nm values
 = RegEntry "HKLM" "Software" 	                 (CreateKey False) :
   RegEntry "HKLM" "Software\\Haskell" 	         (CreateKey False) :
   RegEntry "HKLM" "Software\\Haskell\\Projects" (CreateKey False) :
   RegEntry "HKLM" proj_path                     (CreateKey True)  :
   map (\ (nm,val) -> RegEntry "HKLM" proj_path
   			       (CreateName (Just nm) val))
       values
 where
   proj_path = "Software\\Haskell\\Projects\\"++nm

features :: [(String, String)]
features = [ baseFeature ]

baseFeature :: (String, String)
baseFeature = ("SOE", "School of Expression")

startMenu :: (String, [Shortcut])
startMenu = ("School of Expression", entries)
  where
    entries :: [Shortcut]
    entries = 
      [ Shortcut "Source code"
                 "c:\\src\\soelib\\src\\Code.html"
		 ""
		 "Example code"
	         (Just ("c:\\src\\bamse\\soe\\html.exe"))
		 1
		 "[TARGETDIR]src"
      ]

desktopShortcuts :: [Shortcut]
desktopShortcuts = []

extensions :: [ Extension ]
extensions = []

verbs :: [ ( String  -- extension
	   , String  -- verb
	   , String  -- label
	   , String  -- arguments
	   )
	 ]
verbs = []

dirTrees :: IO [DirTree]
dirTrees = do 
  fs <- findFiles ofInterest (srcDir ++ "\\soelib")
  return [fs]
 where
   ofInterest file  = not (last file == '~')
  
license :: Maybe FilePath
license = Nothing -- Just "c:\\src\\soelib\\license.rtf"

userRegistration :: Bool
userRegistration = False

defaultInstallFolder :: Maybe String
defaultInstallFolder = Nothing