bamse-0.9.1: templates/Hugs98Net.hs
--
-- (c) 2007, Galois, Inc.
--
-- To create a package, you need to define a module
-- which exports information and functions that together
-- define the functionality (and contents) of your package.
--
-- [Having Haskell as the only 'specification language' for packages
-- is not a goal. ]
module Hugs98Net where
import Bamse.Package
import Bamse.PackageUtils
import Util.Dir
import Util.Path
versionNumber = "March2003"
defaultOutFile = "hugs98-net-March2003.msi"
packageDir = "hugs98-net"
pkg :: Package
pkg = Package
{ name = "Hugs98.NET"
, title = "Hugs98 for .NET"
, productVersion = "1.0.0.0"
, author = "Sigbjorn Finne"
, comment = "Hugs98 for .NET " ++ versionNumber
}
webSite :: String
webSite = "http://galois.com/~sof/hugs98.net/"
bannerBitmap :: InstallEnv -> Maybe FilePath
bannerBitmap ienv = Just (lFile (toolDir ienv) "art/banner.bmp")
bgroundBitmap :: InstallEnv -> Maybe FilePath
bgroundBitmap _ienv = Nothing
registry :: [RegEntry]
registry
= haskellImpl "Hugs98.Net" "March 2002"
[ ("InstallDir", "[TARGETDIR]") ]
features :: [Tree Feature]
features = [ Leaf baseFeature ]
baseFeatureName :: FeatureName
baseFeatureName = "Hugs98.NET"
baseFeature :: Feature
baseFeature = (baseFeatureName, "Hugs98.NET")
startMenu :: InstallEnv -> (String, [Shortcut])
startMenu ienv = ("Hugs98.NET", entries)
where
topDir = srcDir ienv
iconDir = lFile (toolDir ienv) "icons"
entries :: [Shortcut]
entries =
[ Shortcut "Hugs (Haskell98 mode)"
(lFile topDir "hugs.exe")
"+98"
"Hugs98 interpreter (Haskell98 mode)"
(Just (lFile iconDir "hsx.exe"))
1
"[TARGETDIR]"
, Shortcut "Hugs (Hugs mode)"
(lFile topDir "hugs.exe")
"-98"
"Hugs98 interpreter (Hugs mode)"
(Just (lFile iconDir "hsx.exe"))
1
"[TARGETDIR]"
, Shortcut "Hugs98 Readme"
(lFile topDir "Readme.txt")
""
"Hugs98 Readme"
(Just (lFile iconDir "txt.exe"))
1
"[TARGETDIR]"
, Shortcut "Hugs98.Net documentation"
(lFile topDir "dotnet\\doc\\dotnet.html")
""
"Hugs98.Net documentation"
(Just (lFile iconDir "html.exe"))
1
"[TARGETDIR]"
]
desktopShortcuts :: InstallEnv -> [Shortcut]
desktopShortcuts _ienv = []
-- turn off registration of Hugs98.net specific extensions + verbs.
extensions :: InstallEnv -> [ Extension ]
extensions _ienv = [ ]
verbs :: [ ( String -- extension
, String -- verb
, String -- label
, String -- arguments
)
]
verbs = []
dirTree :: InstallEnv -> IO DirTree
dirTree ienv = findFiles ofInterest topDir
where
topDir = srcDir ienv
ofInterest file = file /= topDir ++ "\\src" &&
file /= topDir ++ "\\tests" &&
file /= topDir ++ "\\demos" &&
file /= topDir ++ "\\tools" &&
not (last file == '~') &&
not (baseName file == "CVS")
distFileMap :: Maybe (FilePath -> Maybe FilePath)
distFileMap = Nothing
featureMap :: Maybe (FilePath -> FeatureName)
featureMap = Nothing
license :: InstallEnv -> Maybe FilePath
license _ienv = Nothing
userRegistration :: Bool
userRegistration = False
defaultInstallFolder :: Maybe String
defaultInstallFolder = Nothing
finalMessage :: Maybe String
finalMessage = Nothing
userInstall :: Bool
userInstall = False
services :: [ Service ]
services = []
ghcPackageInfo :: Maybe GhcPackage
ghcPackageInfo = Nothing
nestedInstalls = []