cabalQuery 0.1.0.0 → 0.1.0.1
raw patch · 2 files changed
+26/−9 lines, 2 filesdep +cabalQuerydep +directorydep −cabal-query
Dependencies added: cabalQuery, directory
Dependencies removed: cabal-query
Files
- cabalQuery.cabal +3/−2
- tools/Main.hs +23/−7
cabalQuery.cabal view
@@ -1,5 +1,5 @@ name: cabalQuery-version: 0.1.0.0+version: 0.1.0.1 synopsis: A simple tool to query cabal files. description: Command line access to the cabal package description files.@@ -42,7 +42,8 @@ build-depends: base >=4.6 && <4.7, Cabal >= 1.22,- cabal-query,+ cabalQuery,+ directory, MissingH, containers
tools/Main.hs view
@@ -1,5 +1,6 @@ module Main where +import System.Directory import System.Environment import System.IO @@ -8,20 +9,31 @@ import Data.Map (Map) import qualified Data.Map as Map import Data.String.Utils+import Data.Version (showVersion) import Distribution.Query import Distribution.PackageDescription (GenericPackageDescription) ++import qualified Paths_cabalQuery as CQ+ main :: IO () main = do args <- getArgs eCfg <- parseArgs args case eCfg of Nothing -> printHelp- Just cfg | ["--help"] `isInfixOf` (options cfg) -> printHelp+ Just cfg | ["--help"] `isInfixOf` (options cfg) -> printHelp+ | ["--version"] `isInfixOf` (options cfg) -> printVersion | otherwise -> do let cmds = map cmdFn $ commands cfg- mapM_ (query cmds) (files cfg)+ case files cfg of+ [] -> do putStrLn "No .cabal files specified."+ printHelp+ theFiles -> mapM_ (query cmds) theFiles +printVersion :: IO ()+printVersion = putStrLn ("cabalQuery-"++ showVersion CQ.version)+ printHelp :: IO () printHelp = do putStrLn "Usage: cabalQuery [command] [cabalfile] [options]"@@ -83,11 +95,15 @@ parseArgs args = do let eCmds = map toCommand $ filter isCommand args case (lefts eCmds, rights eCmds) of- ([] , cmds) ->- return (Just (Config { files = filter isCabalFile args- , options = filter isOption args- , commands = cmds- }))+ ([] , cmds) -> do+ theFiles <- case filter isCabalFile args of+ [] -> do fs <- getCurrentDirectory >>= getDirectoryContents+ return (filter isCabalFile fs)+ fs -> return fs+ return (Just (Config { files = theFiles+ , options = filter isOption args+ , commands = cmds+ })) (errs, _) -> do hPutStrLn stderr "Invalid commands specified:" mapM_ (hPrint stderr) errs