packages feed

hoogle-4.0: src/CmdLine/Files.hs

module CmdLine.Files(getDataBaseFiles) where

import CmdLine.Flag
import General.Glob
import General.Code
import Hoogle.Query.All
import Paths_hoogle(getDataDir)


-- pick "default" if there are not ones specified
-- otherwise use the CmdFlag and any +package query flags
getDataBaseFiles :: [CmdFlag] -> Query -> IO [FilePath]
getDataBaseFiles flags q = do
    let dataFil = [x | DataFile x <- flags]
        plusPkg = [x | PlusPackage x <- scope q]
    if null dataFil && null plusPkg then
        liftM (:[]) $ resolve "default"
     else do
        rs <- mapM resolve plusPkg
        return $ dataFil ++ rs
    where
        inc = [x | Include x <- flags]
        resolve x = do
            dataDir <- getDataDir
            [x] <- globFile (inc++[dataDir]) ["hoo"] x
            return x