packages feed

cabalrpmdeps 0.0.3 → 0.0.4

raw patch · 4 files changed

+32/−42 lines, 4 filesdep +filepathsetup-changed

Dependencies added: filepath

Files

Distribution/RpmDeps.hs view
@@ -4,9 +4,12 @@ import Distribution.Version -- -> intersperse import Data.List--- -> readPackageDescription import Distribution.PackageDescription+import Distribution.Simple.Utils+import Distribution.Verbosity -- -> PackageIdentifier+import Distribution.PackageDescription.Parse+-- -> readPackageDescription import Distribution.Simple -- -> maybeGetPersistBuildConfig import Distribution.Simple.Configure@@ -14,39 +17,36 @@ import Distribution.Simple.LocalBuildInfo -- -> GetDirectoryContents import Directory+import System.FilePath+import Distribution.Text  dep_prefix = "haskell" -rpmrequires :: IO [String]-rpmrequires = do-    buildinfo <- maybeGetPersistBuildConfig+rpmrequires :: Maybe FilePath -> IO [String]+rpmrequires cabalfile = do+    buildinfo <- maybeGetPersistBuildConfig =<< findcabal cabalfile     return $ case buildinfo of         Nothing -> []         Just bi -> map package2rpmdep (packageDeps bi) -rpmprovides :: Maybe String -> IO [String]+rpmprovides :: Maybe FilePath -> IO [String] rpmprovides cabalfile = do-    mycabal <- readPackageDescription =<< findcabal cabalfile-    return $ [package2rpmdep (package mycabal)]+    mycabal <- readPackageDescription normal =<< findcabal cabalfile+    return $ [package2rpmdep (package $ packageDescription mycabal)] -rpmbuildrequires :: Maybe String -> IO [String]+rpmbuildrequires :: Maybe FilePath -> IO [String] rpmbuildrequires cabalfile = do-    mycabal <- readPackageDescription =<< findcabal cabalfile-    return $ map dependency2rpmdep (buildDepends mycabal)+    fcabal <- findcabal cabalfile+    mycabal <- readPackageDescription normal fcabal+    return $ map dependency2rpmdep (buildDepends $ packageDescription mycabal) -findcabal file = do-    cfiles <- cabalfiles `fmap` getDirectoryContents "."-    case (file, cfiles)  of-      (Just a, _)   -> return a-      (Nothing, c:_) -> return c-      _          -> error $ "Please specify one of " ++ show cfiles-    where cabalfiles = filter (isSuffixOf ".cabal")+findcabal file = defaultPackageDesc normal  package2rpmdep :: PackageIdentifier -> String-package2rpmdep pkg = dep_prefix ++ "(" ++ pkgName pkg ++ ") = " ++ (version2string $ pkgVersion pkg)+package2rpmdep pkg = dep_prefix ++ "(" ++ display (pkgName pkg) ++ ") = " ++ (version2string $ pkgVersion pkg)  dependency2rpmdep :: Dependency -> String-dependency2rpmdep (Dependency name vers) = dep_prefix ++ "(" ++ name ++ ")" ++ vers2st+dependency2rpmdep (Dependency name vers) = dep_prefix ++ "(" ++ display name ++ ")" ++ vers2st     where          vers2st = case vers of             AnyVersion                  -> ""
Setup.hs view
@@ -1,22 +1,4 @@ #!/usr/bin/env runhugs  import Distribution.Simple-import Distribution.PackageDescription-import Distribution.Simple.LocalBuildInfo-import Distribution.Version-import System.Info-import Data.Maybe-import System.Cmd--missingHooks = defaultUserHooks {confHook = customConfHook}--customConfHook descrip flags =-    let mydescrip = case System.Info.os of-                      "mingw32" -> descrip-                      _ -> descrip {buildDepends = -                                        (Dependency "unix" AnyVersion) :-                                        buildDepends descrip}-    in (confHook defaultUserHooks) mydescrip flags--main = defaultMainWithHooks missingHooks-+main = defaultMain
cabalrpmdeps.cabal view
@@ -1,5 +1,5 @@ Name: cabalrpmdeps-Version: 0.0.3+Version: 0.0.4 License: GPL License-file: gpl.txt Category: Distribution@@ -12,9 +12,10 @@ Hs-Source-Dirs: . Exposed-Modules: Distribution.RpmDeps Extensions: CPP-Build-Depends: haskell98, base, Cabal+Build-Depends: haskell98, base, Cabal, filepath -- Cabal will automatically add unix here on non-Windows platforms GHC-Options: -O2+build-type: Simple  Executable: cabalrpmprov Main-Is: cabalrpmprov.hs
cabalrpmreq.hs view
@@ -1,7 +1,14 @@ module Main where  import Distribution.RpmDeps+import System+import Monad  main = do-    req <- rpmrequires-    putStrLn $ unlines $ req+    args <- getArgs+    prov <- case args of+        [] -> rpmrequires Nothing+        _ -> do +            p <- mapM (\x -> rpmrequires $ Just x) args+            return $ foldl (++) [] p+    putStrLn $ unlines $ prov