diff options
author | Andrea Rossato <andrea.rossato@ing.unitn.it> | 2007-06-19 12:51:50 +0200 |
---|---|---|
committer | Andrea Rossato <andrea.rossato@ing.unitn.it> | 2007-06-19 12:51:50 +0200 |
commit | fa7e002c63b11a88e35ef4160b4bc9b6e3bdb34e (patch) | |
tree | 777e129de6701cec1678a6b88576d2ced80ad9d5 | |
parent | c51fc0d0c3e8c0ffc22050707f41730336796d74 (diff) | |
download | xmobar-fa7e002c63b11a88e35ef4160b4bc9b6e3bdb34e.tar.gz xmobar-fa7e002c63b11a88e35ef4160b4bc9b6e3bdb34e.tar.bz2 |
added cabal support
darcs-hash:20070619105150-d6583-4351c7ea0a1eb1aa45f752f69a9e50d89af64ac3.gz
-rwxr-xr-x | Setup.lhs | 80 | ||||
-rw-r--r-- | xmobar.cabal | 16 | ||||
-rw-r--r-- | xmobar.hs | 2 |
3 files changed, 97 insertions, 1 deletions
diff --git a/Setup.lhs b/Setup.lhs new file mode 100755 index 0000000..d7acc7f --- /dev/null +++ b/Setup.lhs @@ -0,0 +1,80 @@ +#!/usr/bin/env runhaskell + +> import Distribution.Simple +> import Distribution.PackageDescription +> import Distribution.Setup +> import Distribution.Simple.Utils +> import Distribution.Simple.LocalBuildInfo +> import Distribution.Program +> import Distribution.PreProcess + +> import System.FilePath.Posix +> import System.Directory +> import Data.List + + +> main = defaultMainWithHooks defaultUserHooks {haddockHook = xmonadHaddock} + +> -- a different implementation of haddock hook from +> -- from Distribution.Simple: will use synopsis and description for +> -- building executables' documentation. + +> xmonadHaddock pkg_descr lbi hooks (HaddockFlags hoogle verbose) = do +> confHaddock <- do let programConf = withPrograms lbi +> haddockName = programName haddockProgram +> mHaddock <- lookupProgram haddockName programConf +> maybe (die "haddock command not found") return mHaddock + +> let tmpDir = (buildDir lbi) </> "tmp" +> createDirectoryIfMissing True tmpDir +> createDirectoryIfMissing True haddockPref +> preprocessSources pkg_descr lbi verbose (allSuffixHandlers hooks) +> setupMessage "Running Haddock for" pkg_descr + +> let outputFlag = if hoogle then "--hoogle" else "--html" +> showPkg = showPackageId (package pkg_descr) +> showDepPkgs = map showPackageId (packageDeps lbi) + +> withExe pkg_descr $ \exe -> do +> let bi = buildInfo exe +> inFiles <- getModulePaths bi (otherModules bi) +> srcMainPath <- findFile (hsSourceDirs bi) (modulePath exe) + +> let prologName = showPkg ++ "-haddock-prolog.txt" +> writeFile prologName (description pkg_descr ++ "\n") + +> let exeTargetDir = haddockPref </> exeName exe +> outFiles = srcMainPath : inFiles +> haddockFile = exeTargetDir </> (haddockName pkg_descr) + +> createDirectoryIfMissing True exeTargetDir +> rawSystemProgram verbose confHaddock +> ([outputFlag, +> "--odir=" ++ exeTargetDir, +> "--title=" ++ showPkg ++ ": " ++ synopsis pkg_descr, +> "--package=" ++ showPkg, +> "--dump-interface=" ++ haddockFile, +> "--prologue=" ++ prologName +> ] +> ++ map ("--use-package=" ++) showDepPkgs +> ++ programArgs confHaddock +> ++ (if verbose > 4 then ["--verbose"] else []) +> ++ outFiles +> ) +> removeFile prologName + +> getModulePaths :: BuildInfo -> [String] -> IO [FilePath] +> getModulePaths bi = +> fmap concat . +> mapM (flip (moduleToFilePath (hsSourceDirs bi)) ["hs", "lhs"]) + + +> allSuffixHandlers :: Maybe UserHooks +> -> [PPSuffixHandler] +> allSuffixHandlers hooks +> = maybe knownSuffixHandlers +> (\h -> overridesPP (hookedPreProcessors h) knownSuffixHandlers) +> hooks +> where +> overridesPP :: [PPSuffixHandler] -> [PPSuffixHandler] -> [PPSuffixHandler] +> overridesPP = unionBy (\x y -> fst x == fst y) diff --git a/xmobar.cabal b/xmobar.cabal new file mode 100644 index 0000000..5ad58ba --- /dev/null +++ b/xmobar.cabal @@ -0,0 +1,16 @@ +name: xmobar +version: 0.1 +homepage: http://gorgias.mine.nu/repos/xmobar/ +synopsis: A Statusbar for the XMonad Window Manager +description: A Statusbar for the XMonad Window Manager +category: System +license: BSD3 +license-file: LICENSE +author: Andrea Rossato +maintainer: andrea.rossato@unibz.it +build-depends: base>=2.0, X11>=1.2.1, mtl>=1.0, unix>=1.0, parsec>=2.0 + +executable: xmobar +main-is: xmobar.hs +ghc-options: -funbox-strict-fields -O2 -fasm -Wall -optl-Wl,-s +ghc-prof-options: -prof -auto-all @@ -2,7 +2,7 @@ -- | -- Module : XMobar -- Copyright : (c) Andrea Rossato --- License : BSD-style (see xmonad/LICENSE) +-- License : BSD-style (see LICENSE) -- -- Maintainer : Andrea Rossato <andrea.rossato@unibz.it> -- Stability : unstable |