1#! /usr/bin/env runhaskell
3> module Main ( main ) where
7> import Distribution.PackageDescription
8> import Distribution.Simple
9> import Distribution.Simple.LocalBuildInfo
10> import Distribution.Simple.Program
11> import Distribution.Simple.Setup
14> main = defaultMainWithHooks simpleUserHooks
15> { hookedPrograms = map simpleProgram programs
16> , confHook = configure
20> programs = ["nix-instantiate", "nix-build", "nix-env", "nix-store"]
22> configure :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo
23> configure (gpd, hbi) flags = do
24> lbi' <- confHook simpleUserHooks (gpd, hbi) flags
25> let paths = map (\p -> (p, maybe p programPath (lookupProgram (simpleProgram p) (withPrograms lbi)))) programs
26> descr = localPkgDescr lbi'
27> lib = fromJust (library descr)
28> libbi = libBuildInfo lib
29> lbi = lbi' { localPkgDescr = descr
30> { library = Just (lib { libBuildInfo = libbi { cppOptions = cppOptions libbi ++ map fmtCppArg paths } })
35> fmtCppArg :: (String, FilePath) -> String
36> fmtCppArg (prg, path) = "-DPATH_TO_" ++ map mangle prg ++ "=" ++ show path
38> mangle :: Char -> Char
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list