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 +19/−19
- Setup.hs +1/−19
- cabalrpmdeps.cabal +3/−2
- cabalrpmreq.hs +9/−2
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