|
From: Andy S. <And...@co...> - 2010-09-23 05:57:42
|
diffing dir...
Thu Sep 23 01:20:53 EDT 2010 Andy Stewart <laz...@gm...>
* Print better error when gtk2hs-buildtools not install correctly.
Ignore-this: b293e97486cd9f0bc51caf5946bb7056
{
hunk ./gtk/Gtk2HsSetup.hs 35
-module Gtk2HsSetup ( gtk2hsUserHooks, getPkgConfigPackages ) where
+module Gtk2HsSetup ( [_$_]
+ gtk2hsUserHooks, [_$_]
+ getPkgConfigPackages, [_$_]
+ checkGtk2hsBuildtools
+ ) where
hunk ./gtk/Gtk2HsSetup.hs 72
- rawSystemProgramConf, rawSystemProgramStdoutConf,
+ rawSystemProgramConf, rawSystemProgramStdoutConf, programName,
hunk ./gtk/Gtk2HsSetup.hs 90
-import System.Directory ( doesFileExist )
+import System.Directory ( doesFileExist, getDirectoryContents, getDirectoryContents, doesDirectoryExist )
hunk ./gtk/Gtk2HsSetup.hs 93
-import Control.Monad (when, unless, filterM)
+import Control.Monad (when, unless, filterM, liftM, forM)
hunk ./gtk/Gtk2HsSetup.hs 101
-import System.Directory (getDirectoryContents, doesDirectoryExist)
hunk ./gtk/Gtk2HsSetup.hs 490
+
+-- Check user whether install gtk2hs-buildtools correctly.
+checkGtk2hsBuildtools :: IO ()
+checkGtk2hsBuildtools = do
+ allExecuteFiles <- getAllExecuteFiles
+ let c2hsName = programName c2hsLocal
+ typeProgramName = programName typeGenProgram
+ signalProgramName = programName signalGenProgram
+ printError name = do
+ error $ "Can't found " ++ name ++ "\n" [_$_]
+ ++ "Please install package `gtk2hs-buildtools` first, and make sure " ++ name ++ " in your PATH."
+ if not (c2hsName `elem` allExecuteFiles)
+ then printError c2hsName
+ else if not (typeProgramName `elem` allExecuteFiles)
+ then printError typeProgramName
+ else if not (signalProgramName `elem` allExecuteFiles)
+ then printError signalProgramName
+ else return ()
+
+-- Get all execute files.
+getAllExecuteFiles :: IO [String]
+getAllExecuteFiles = do
+ paths <- getSearchPath
+ liftM concat $ forM paths getDirectoryContents
hunk ./gtk/Setup.hs 4
-import Gtk2HsSetup ( gtk2hsUserHooks )
+import Gtk2HsSetup ( gtk2hsUserHooks, checkGtk2hsBuildtools )
hunk ./gtk/Setup.hs 7
-main = defaultMainWithHooks gtk2hsUserHooks
+main = do
+ checkGtk2hsBuildtools
+ defaultMainWithHooks gtk2hsUserHooks
+ [_$_]
}
|