55
66module Foliage.PrepareSource where
77
8- import Control.Monad (when )
8+ import Control.Monad (unless , when )
99import Data.ByteString qualified as BS
1010import Data.Foldable (for_ )
1111import Development.Shake
@@ -16,7 +16,6 @@ import Distribution.Types.PackageId
1616import Distribution.Types.PackageName (unPackageName )
1717import Foliage.FetchURL (fetchURL )
1818import Foliage.Meta
19- import Foliage.UpdateCabalFile (rewritePackageVersion )
2019import Foliage.Utils.GitHub (githubRepoTarballUrl )
2120import GHC.Generics
2221import Network.URI (URI (.. ))
@@ -83,9 +82,14 @@ addPrepareSourceRule inputDir cacheDir = addBuiltinRule noLint noIdentity run
8382 cmd_ Shell (Cwd srcDir) (FileStdin patch) " patch -p1"
8483
8584 when packageVersionForce $ do
85+ let revisionZero = inputDir </> unPackageName pkgName </> prettyShow pkgVersion </> " revisions" </> " 0" <.> " cabal"
86+ hasRevisionZero <- doesFileExist revisionZero
87+ unless hasRevisionZero $
88+ error $
89+ " force-version requires a modified Cabal file in " ++ revisionZero
8690 let cabalFilePath = srcDir </> unPackageName pkgName <.> " cabal"
87- putInfo $ " Updating version in cabal file" ++ cabalFilePath
88- liftIO $ rewritePackageVersion cabalFilePath pkgVersion
91+ putInfo $ " Copying revision 0 of cabal file to " ++ cabalFilePath
92+ copyFileChanged revisionZero cabalFilePath
8993
9094 return $ RunResult ChangedRecomputeDiff BS. empty srcDir
9195
0 commit comments