;shake: cabalfiles: cleanups, build fast and show progress

This commit is contained in:
Simon Michael 2021-08-03 08:28:36 -10:00
parent 95de5a878a
commit ff76db9fb2

View File

@ -258,16 +258,16 @@ main = do
-- VERSION NUMBERS -- VERSION NUMBERS
-- Regenerate .cabal files from package.yaml files, using stack build --dry-run. -- Regenerate .cabal files from package.yaml files.
-- (used by "cabalfiles" and "setversion") -- (used by "cabalfiles" and "setversion")
let docabalfiles = do let gencabalfiles = do
-- stack can fail to update cabal files with zero exit status, -- stack 1.7+ no longer updates cabal files with --dry-run, we must do a full build.
-- so we need to to check stderr, and specifically for the error message -- stack can fail to update cabal files while returning zero exit code,
-- since all output goes there -- we need to check for the error message (specifically) on stderr.
err <- fromStderr <$> err <- fromStdouterr <$>
-- stack 1.7 no longer updates cabal files with --dry-run, must do a full build (cmd (EchoStdout True) (EchoStderr True) Shell "stack build --fast" :: Action (Stdouterr String))
-- (or use hpack, of similar version) -- Or use hpack directly. It should be the same version that's in current stack.
(cmd Shell "stack build" :: Action (Stderr String)) -- (cmd Shell "hpack" :: Action (Stderr String))
when ("was generated with a newer version of hpack" `isInfixOf` err) $ when ("was generated with a newer version of hpack" `isInfixOf` err) $
liftIO $ putStr err >> exitFailure liftIO $ putStr err >> exitFailure
when commit $ do when commit $ do
@ -312,7 +312,7 @@ main = do
] ]
cmd Shell gitcommit ("-m '"++msg++"' --") specifiedversionfiles dependents cmd Shell gitcommit ("-m '"++msg++"' --") specifiedversionfiles dependents
docabalfiles gencabalfiles
-- PKG/.version.m4 <- PKG/.version, just updates the _version_ macro -- PKG/.version.m4 <- PKG/.version, just updates the _version_ macro
"hledger*/.version.m4" %> \out -> do "hledger*/.version.m4" %> \out -> do
@ -388,7 +388,7 @@ main = do
cmd_ Shell grep "'^ *- +hledger.*[<>=]'" out cmd_ Shell grep "'^ *- +hledger.*[<>=]'" out
" || [[ $? == 1 ]]" -- ignore no matches, https://unix.stackexchange.com/a/427598 " || [[ $? == 1 ]]" -- ignore no matches, https://unix.stackexchange.com/a/427598
phony "cabalfiles" $ docabalfiles phony "cabalfiles" $ gencabalfiles
-- MANUALS -- MANUALS