X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fghc-pkg%2FMain.hs;h=8c106b038da838ecb2e0567087db16586c410ec0;hb=a6e4ca6e55cfc3f3fd3253df69e803c8a999729a;hp=29e2c8df25edfec12659b14e1e82cb7b43e0de26;hpb=fa6c4bf01427a4191a595afecf90d96b27bad306;p=ghc-hetmet.git diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs index 29e2c8d..8c106b0 100644 --- a/utils/ghc-pkg/Main.hs +++ b/utils/ghc-pkg/Main.hs @@ -99,6 +99,7 @@ data Flag | FlagAutoGHCiLibs | FlagDefinedName String String | FlagSimpleOutput + | FlagNamesOnly deriving Eq flags :: [OptDescr Flag] @@ -124,7 +125,9 @@ flags = [ Option ['V'] ["version"] (NoArg FlagVersion) "output version information and exit", Option [] ["simple-output"] (NoArg FlagSimpleOutput) - "print output in easy-to-parse format for some commands" + "print output in easy-to-parse format for some commands", + Option [] ["names-only"] (NoArg FlagNamesOnly) + "only print package names, not versions; can only be used with list --simple-output" ] where toDefined str = @@ -491,7 +494,9 @@ listPackages flags mPackageName = do where doc = text (showPackageId (package p)) show_simple db_stack = do - let pkgs = map showPackageId $ sortBy compPkgIdVer $ + let showPkg = if FlagNamesOnly `elem` flags then pkgName + else showPackageId + pkgs = map showPkg $ sortBy compPkgIdVer $ map package (concatMap snd db_stack) when (null pkgs) $ die "no matches" hPutStrLn stdout $ concat $ intersperse " " pkgs @@ -1020,7 +1025,10 @@ dieForcible s = die (s ++ " (use --force to override)") -- Cut and pasted from ghc/compiler/SysTools #if defined(mingw32_HOST_OS) +subst :: Char -> Char -> String -> String subst a b ls = map (\ x -> if x == a then b else x) ls + +unDosifyPath :: FilePath -> FilePath unDosifyPath xs = subst '\\' '/' xs getExecDir :: String -> IO (Maybe String)