cblrepo 0.14.0 → 0.15.0
raw patch · 15 files changed
+74/−66 lines, 15 filesdep ~Cabaldep ~basedep ~containers
Dependency ranges changed: Cabal, base, containers, filepath, mtl, safe, utf8-string
Files
- cblrepo.cabal +6/−5
- src/Add.hs +7/−7
- src/BuildPkgs.hs +2/−2
- src/BumpPkgs.hs +4/−4
- src/ConvertDB.hs +21/−16
- src/ListPkgs.hs +6/−6
- src/Main.hs +3/−0
- src/PkgBuild.hs +3/−3
- src/Remove.hs +4/−3
- src/Sync.hs +1/−1
- src/Updates.hs +3/−3
- src/Util/Cabal.hs +1/−0
- src/Util/Misc.hs +4/−7
- src/Util/Translation.hs +6/−6
- src/Versions.hs +3/−3
cblrepo.cabal view
@@ -1,5 +1,5 @@ name: cblrepo-version: 0.14.0+version: 0.15.0 cabal-version: >= 1.6 license: OtherLicense license-file: LICENSE-2.0@@ -25,12 +25,13 @@ main-is: Main.hs other-modules: PkgDB Add BumpPkgs BuildPkgs Sync Versions Updates ListPkgs PkgBuild OldPkgDB ConvertDB Remove Extract Util.Translation Util.Cabal Util.HackageIndex Util.Misc Util.Dist- build-depends: base ==4.7.*, filepath ==1.3.*,- directory ==1.2.*, Cabal ==1.18.*,- bytestring ==0.10.*, tar ==0.4.*, zlib ==0.5.*, mtl >=2.0 && <2.2,+ build-depends: base ==4.8.*, filepath ==1.4.*,+ directory ==1.2.*, Cabal ==1.22.*,+ bytestring ==0.10.*, tar ==0.4.*, zlib ==0.5.*, mtl ==2.2.*, process ==1.2.*, Unixutils ==1.52.*, unix ==2.7.*, ansi-wl-pprint ==0.6.*, aeson ==0.8.*,- optparse-applicative ==0.11.*, safe, containers, utf8-string+ optparse-applicative ==0.11.*, safe ==0.3.*, containers ==0.5.*,+ utf8-string ==1 Source-Repository head Type: git
src/Add.hs view
@@ -46,15 +46,15 @@ -- {{{1 add add :: Command () add = do- dbFn <- optGet dbFile+ dbFn <- asks dbFile db <- liftIO $ readDb dbFn- dr <- optGet dryRun- ghcVersion <- optGet $ ghcVer . optsCmd- filePkgs <- optGet $ cmdAddFileCbls . optsCmd- idxPkgs <- optGet $ cmdAddCbls . optsCmd+ dr <- asks dryRun+ ghcVersion <- asks $ ghcVer . optsCmd+ filePkgs <- asks $ cmdAddFileCbls . optsCmd+ idxPkgs <- asks $ cmdAddCbls . optsCmd --- ghcPkgs <- optGet $ map (uncurry GhcType) . cmdAddGhcPkgs . optsCmd- distroPkgs <- optGet $ map (\ (n, v, r) -> DistroType n v r) . cmdAddDistroPkgs . optsCmd+ ghcPkgs <- asks $ map (uncurry GhcType) . cmdAddGhcPkgs . optsCmd+ distroPkgs <- asks $ map (\ (n, v, r) -> DistroType n v r) . cmdAddDistroPkgs . optsCmd genFilePkgs <- mapM (runCabalParseWithTempDir . Cbl.readFromFile . fst) filePkgs genIdxPkgs <- mapM ((runCabalParseWithTempDir . Cbl.readFromIdx) . (\ (a, b, _) -> (a, b))) idxPkgs genPkgs <- liftM (map RepoType) $ exitOnErrors (genFilePkgs ++ genIdxPkgs)
src/BuildPkgs.hs view
@@ -23,6 +23,6 @@ buildPkgs :: Command () buildPkgs = do- db <- optGet dbFile >>= liftIO . readDb- pkgs <- optGet $ pkgs . optsCmd+ db <- asks dbFile >>= liftIO . readDb+ pkgs <- asks $ pkgs . optsCmd liftIO $ mapM_ putStrLn $ transitiveDependants db pkgs
src/BumpPkgs.hs view
@@ -23,11 +23,11 @@ bumpPkgs :: Command () bumpPkgs = do- dbFn <- optGet dbFile+ dbFn <- asks dbFile db <- liftIO $ readDb dbFn- dR <- optGet dryRun- pkgs <- optGet $ pkgs . optsCmd- incl <- optGet $ inclusive . optsCmd+ dR <- asks dryRun+ pkgs <- asks $ pkgs . optsCmd+ incl <- asks $ inclusive . optsCmd let bpkgs = transDependants db incl pkgs let newDb = foldl bumpRelease db bpkgs liftIO $ if dR
src/ConvertDB.hs view
@@ -21,24 +21,29 @@ import qualified PkgDB as NDB import Control.Monad.Reader+import System.Directory convertDb :: Command () convertDb = do- inDbFn <- optGet $ inDbFile . optsCmd- outDbFn <- optGet $ outDbFile . optsCmd- newDb <- liftIO $ liftM (map doConvert) (ODB.readDb inDbFn)- liftIO $ NDB.saveDb newDb outDbFn+ inDbFn <- asks $ inDbFile . optsCmd+ outDbFn <- asks $ outDbFile . optsCmd+ dbExist <- liftIO $ doesFileExist inDbFn+ when dbExist $ do+ newDb <- fmap doConvertDB (liftIO $ ODB.readDb inDbFn)+ liftIO $ NDB.saveDb newDb outDbFn -doConvert :: ODB.CblPkg -> NDB.CblPkg-doConvert o- | ODB.isGhcPkg o = NDB.createGhcPkg n v- | ODB.isDistroPkg o = NDB.createDistroPkg n v r- | ODB.isRepoPkg o = NDB.createRepoPkg n v x d f r- | otherwise = error ""+doConvertDB :: ODB.CblDB -> NDB.CblDB+doConvertDB = map doConvert where- n = ODB.pkgName o- v = ODB.pkgVersion o- x = 0- d = ODB.pkgDeps o- f = ODB.pkgFlags o- r = ODB.pkgRelease o+ doConvert o+ | ODB.isGhcPkg o = NDB.createGhcPkg n v+ | ODB.isDistroPkg o = NDB.createDistroPkg n v r+ | ODB.isRepoPkg o = NDB.createRepoPkg n v x d f r+ | otherwise = error ""+ where+ n = ODB.pkgName o+ v = ODB.pkgVersion o+ x = 0+ d = ODB.pkgDeps o+ f = ODB.pkgFlags o+ r = ODB.pkgRelease o
src/ListPkgs.hs view
@@ -26,12 +26,12 @@ listPkgs :: Command () listPkgs = do- lG <- optGet $ listGhc . optsCmd- lD <- optGet $ listDistro . optsCmd- lR <- optGet $ noListRepo . optsCmd- lH <- optGet $ hackageFmt . optsCmd- ps <- optGet $ pkgs . optsCmd- db <- optGet dbFile >>= liftIO . readDb+ lG <- asks $ listGhc . optsCmd+ lD <- asks $ listDistro . optsCmd+ lR <- asks $ noListRepo . optsCmd+ lH <- asks $ hackageFmt . optsCmd+ ps <- asks $ pkgs . optsCmd+ db <- asks dbFile >>= liftIO . readDb let allPkgs = filter (pkgFilter lG lD lR) db let pkgsToList = if null ps then allPkgs
src/Main.hs view
@@ -37,10 +37,13 @@ import Options.Applicative as OA -- -- {{{1 command line arguments+argAppDir, argDbFile :: Parser String argAppDir = strOption (long "appdir" <> value "" <> help "Path to application data directory") argDbFile = strOption (long "db" <> value "cblrepo.db" <> help "Path to package database")+argDryRun :: Parser Bool argDryRun = switch (short 'n' <> help "Make no changes, (dry run)") +cmdAddPkgOpts :: Parser Cmds cmdAddPkgOpts = CmdAdd <$> strOption (long "patchdir" <> value "patches" <> help "Location of patches (patches)") <*> option ghcVersionArgReader (long "ghc-version" <> value ghcDefVersion <> help "GHC version to use")
src/PkgBuild.hs view
@@ -37,10 +37,10 @@ generatePkgBuild :: String -> ErrorT String Command () generatePkgBuild pkg = do- db <- optGet dbFile >>= liftIO . readDb+ db <- asks dbFile >>= liftIO . readDb patchDir <- asks $ patchDir . optsCmd- ghcVer <- optGet $ ghcVer . optsCmd- ghcRel <- optGet $ ghcRel . optsCmd+ ghcVer <- asks $ ghcVer . optsCmd+ ghcRel <- asks $ ghcRel . optsCmd (ver, fa) <- maybe (throwError $ "Unknown package: " ++ pkg) (return . (pkgVersion &&& pkgFlags)) $ lookupPkg db pkg -- genericPkgDesc <- runCabalParseWithTempDir $ Cbl.readFromIdx (pkg, ver)
src/Remove.hs view
@@ -23,15 +23,16 @@ -- {{{1 system import Control.Monad.Error+import Control.Monad.Reader (asks) import System.Exit -- {{{1 remove remove :: Command () remove = do- dbFn <- optGet dbFile+ dbFn <- asks dbFile db <- liftIO $ readDb dbFn- pkgs <- optGet $ pkgs . optsCmd- dR <- optGet dryRun+ pkgs <- asks $ pkgs . optsCmd+ dR <- asks dryRun liftIO $ either (\ s -> putStrLn s >> exitFailure) (\ newDb -> unless dR $ saveDb newDb dbFn)
src/Sync.hs view
@@ -23,5 +23,5 @@ sync :: Command () sync = do- aD <- optGet appDir+ aD <- asks appDir liftIO $ getFromURL indexUrl (aD </> indexFileName)
src/Updates.hs view
@@ -31,9 +31,9 @@ updates :: Command () updates = do- db <- optGet dbFile >>= liftIO . readDb- aD <- optGet appDir- aCS <- optGet $ idxStyle .optsCmd+ db <- asks dbFile >>= liftIO . readDb+ aD <- asks appDir+ aCS <- asks $ idxStyle .optsCmd availPkgsNVers <- liftIO $ buildPkgVersions <$> readIndexFile aD let nonBasePkgs = filter (not . isBasePkg) db pkgsNVers = map (pkgName &&& pkgVersion &&& pkgXRev) nonBasePkgs
src/Util/Cabal.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE FlexibleContexts #-} {- - Copyright 2014 Per Magnus Therning -
src/Util/Misc.hs view
@@ -1,5 +1,6 @@+{-# LANGUAGE FlexibleContexts #-} {-- - Copyright 2011-2013 Per Magnus Therning+ - Copyright 2011-2014 Per Magnus Therning - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License.@@ -54,7 +55,7 @@ progName = "cblrepo" dbName = progName ++ ".db" -ghcDefVersion = Version [7, 8, 3] []+ghcDefVersion = Version [7, 10, 1] [] ghcVersionDep :: Version -> Int -> String ghcVersionDep ghcVer ghcRel = "ghc=" ++ display ghcVer ++ "-" ++ show ghcRel @@ -149,10 +150,6 @@ Just (r, "") -> return r _ -> fail $ "Cannot parse: " ++ s --- Helper for grabbing things out of the options-optGet :: MonadReader o m => (o -> s) -> m s-optGet f = liftM f ask- -- {{{1 command line argument type data Cmds = CmdAdd@@ -206,7 +203,7 @@ fa (DB.checkAgainstDb db n) (Platform X86_64 buildOS) -- platform- (CompilerId GHC ghcVersion) -- compiler version+ (unknownCompilerInfo (CompilerId GHC ghcVersion) NoAbiTag) -- compiler version [] -- no additional constraints gpd where
src/Util/Translation.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleInstances, OverlappingInstances #-}+{-# LANGUAGE FlexibleContexts #-} {- - Copyright 2011 Per Magnus Therning -@@ -21,6 +21,7 @@ import Util.Misc import Util.Dist +import Prelude hiding ( (<$>) ) import Control.Monad import Control.Monad.Error import Data.Char@@ -208,7 +209,7 @@ confFlags = if null flags then empty else text " \\" <>- nest 4 (empty <$> (hsep . map (uncurry (<>)) $ zip (repeat $ text "-f") (map pretty flags)))+ nest 4 (empty <$> (hsep . map (uncurry (<>)) $ zip (repeat $ text "-f") (map prettyFlag flags))) libPackageFunction = text "package() {" <> nest 4 (empty <$>@@ -283,9 +284,8 @@ instance Pretty Version where pretty (Version b _) = encloseSep empty empty (char '.') (map pretty b) -instance Pretty (FlagName, Bool) where- pretty (FlagName n, True) = text n- pretty (FlagName n, False) = text $ '-' : n+prettyFlag (FlagName n, True) = text n+prettyFlag (FlagName n, False) = text $ '-' : n -- {{{1 translate -- TODO:@@ -296,7 +296,7 @@ pkgVer = packageVersion pd pkgRel = maybe "1" pkgRelease (lookupPkg db hkgName) hasLib = isJust (library pd)- licFn = let l = licenseFile pd in if null l then Nothing else Just l+ licFn = let l = licenseFiles pd in if null l then Nothing else Just (head l) archName = (if hasLib then "haskell-" else "") ++ map toLower hkgName pkgDesc = synopsis pd url = if null (homepage pd) then "http://hackage.haskell.org/package/${_hkgname}" else homepage pd
src/Versions.hs view
@@ -27,9 +27,9 @@ versions :: Command () versions = do- aD <- optGet appDir- l <- optGet $ latest . optsCmd- pkgs <- optGet $ pkgs . optsCmd+ aD <- asks appDir+ l <- asks $ latest . optsCmd+ pkgs <- asks $ pkgs . optsCmd let printFunc = if l then printLatestVersion else printAllVersions liftIO $ do pkgsNVers <- buildPkgVersions <$> readIndexFile aD