module CmdLine.Files(getDataBaseFiles, getDataBaseFilesNoDefault) where
import CmdLine.Flag
import General.Glob
import General.Code
import Hoogle.Query.All
import Paths_hoogle(getDataDir)
getDataBaseFiles :: [CmdFlag] -> Query -> IO [FilePath]
getDataBaseFiles flags q = do
xs <- getDataBaseFilesNoDefault flags q
if null xs
then liftM (:[]) $ resolve flags "default"
else return xs
getDataBaseFilesNoDefault :: [CmdFlag] -> Query -> IO [FilePath]
getDataBaseFilesNoDefault flags q = do
let dataFil = [x | DataFile x <- flags]
plusPkg = [x | PlusPackage x <- scope q]
rs <- mapM (resolve flags) plusPkg
return $ dataFil ++ rs
resolve :: [CmdFlag] -> String -> IO FilePath
resolve flags x = do
let inc = [x | Include x <- flags]
dataDir <- getDataDir
[x] <- globFile (inc++[dataDir]) ["hoo"] x
return x