cabal-rpm-0.10.0: src/Commands/Refresh.hs
-- |
-- Module : Commands.Refresh
-- Copyright : (C) 2016 Jens Petersen
--
-- Maintainer : Jens Petersen <petersen@fedoraproject.org>
--
-- Explanation: refresh spec file to newer cabal-rpm
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
module Commands.Refresh (
refresh
) where
import Commands.Spec (createSpecFile)
import PackageUtils (PackageData (..))
import Setup (RpmFlags (..))
import SysCmd (cmd_, shell, (+-+))
import Distribution.Simple.Utils (die)
refresh :: PackageData -> RpmFlags -> IO ()
refresh pkgdata flags =
case specFilename pkgdata of
Nothing -> die "No (unique) .spec file in directory."
Just spec -> do
-- FIXME: later this should read the cabal-rpm version header line
oldspec <- createOldSpec "0.9.6" spec
newspec <- createSpecFile pkgdata flags Nothing
shell $ "diff -u2 -I \"- spec file generated by cabal-rpm\" -I \"Fedora Haskell SIG <haskell@lists.fedoraproject.org>\"" +-+ oldspec +-+ newspec +-+ "| sed -e 's/.cblrpm//' | patch" +-+ "|| :"
-- setCurrentDirectory cwd
-- when rwGit $
-- cmd_ "git" ["commit", "-a", "-m", "update to" +-+ newver]
where
createOldSpec :: String -> String -> IO FilePath
createOldSpec crVer spec = do
cmd_ ("cabal-rpm-" ++ crVer) ["spec"]
let backup = spec ++ ".cblrpm"
backup' = backup ++ "-" ++ crVer
cmd_ "mv" [backup, backup']
return backup'