That's perfect. Thanks! On Sat, Jul 11, 2009 at 12:10 AM, Gwern Branwen<gwe...@gmail.com> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On Fri, Jul 10, 2009 at 11:46 PM, Keith Sheppard wrote: >> Is there a way for a cabalized program to get its own info. I'm >> specifically interested in version info. >> >> Thanks >> Keith >> > > Sure, via the Paths_* mechanism. For your reference, here's what it > looks like for xmonad: > > module Paths_xmonad ( > version, > getBinDir, getLibDir, getDataDir, getLibexecDir, > getDataFileName > ) where > > import Data.Version (Version(..)) > import System.Environment (getEnv) > > version :: Version > version = Version {versionBranch = [0,8,1], versionTags = []} > > bindir, libdir, datadir, libexecdir :: FilePath > > bindir = "/home/gwern/bin/bin" > libdir = "/home/gwern/bin/lib/xmonad-0.8.1/ghc-6.10.2" > datadir = "/home/gwern/bin/share/xmonad-0.8.1" > libexecdir = "/home/gwern/bin/libexec" > > getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath > getBinDir = catch (getEnv "xmonad_bindir") (\_ -> return bindir) > getLibDir = catch (getEnv "xmonad_libdir") (\_ -> return libdir) > getDataDir = catch (getEnv "xmonad_datadir") (\_ -> return datadir) > getLibexecDir = catch (getEnv "xmonad_libexecdir") (\_ -> return libexecdir) > > getDataFileName :: FilePath -> IO FilePath > getDataFileName name = do > dir <- getDataDir > return (dir ++ "/" ++ name) > > So if you wanted the version number "081", you could do something like > 'concatMap show $ versionBranch $ version' > > - -- > gwern > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > > iEYEAREKAAYFAkpYD98ACgkQvpDo5Pfl1oI6gACZATzqwtJgBFhAl/qo0ZPauqhg > zBcAnRdHtv5nFzNAo2Z9ulHdW1DxiJBE > =XyEM > -----END PGP SIGNATURE----- >
-- keithsheppard.name _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe