Add 'nightly' flag.

This causes a `-nightly-COMPILEDATE` suffix to be added the
the output of `--version`.

This is used in the nightly CI builds.

Closes #8016.
This commit is contained in:
John MacFarlane 2022-04-12 18:03:26 -07:00
parent f460936528
commit dc03399cc3
3 changed files with 27 additions and 4 deletions

View file

@ -28,7 +28,7 @@ jobs:
cabal v2-build --dependencies-only cabal v2-build --dependencies-only
- name: Build - name: Build
run: | run: |
cabal v2-install cabal v2-install -fnightly
strip $HOME/.cabal/bin/pandoc strip $HOME/.cabal/bin/pandoc
- name: Install artifact - name: Install artifact
run: | run: |
@ -58,7 +58,7 @@ jobs:
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a
set ARTIFACTS=%CD%\nightly-windows\pandoc-nightly-windows-%THEDATE% set ARTIFACTS=%CD%\nightly-windows\pandoc-nightly-windows-%THEDATE%
mkdir %ARTIFACTS% mkdir %ARTIFACTS%
stack build pandoc stack build --flag pandoc:nightly --flag pandoc:embed_data_files pandoc
forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C copy @path %%ARTIFACTS%%" forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C copy @path %%ARTIFACTS%%"
copy COPYRIGHT %ARTIFACTS% copy COPYRIGHT %ARTIFACTS%
ren %ARTIFACTS%\COPYRIGHT COPYRIGHT.txt ren %ARTIFACTS%\COPYRIGHT COPYRIGHT.txt
@ -82,7 +82,7 @@ jobs:
run: | run: |
export ARTIFACTS=nightly-macos/pandoc-nightly-macos-$(date +%Y-%m-%d) export ARTIFACTS=nightly-macos/pandoc-nightly-macos-$(date +%Y-%m-%d)
mkdir -p ${ARTIFACTS} mkdir -p ${ARTIFACTS}
stack build pandoc stack build --flag pandoc:nightly --flag pandoc:embed_data_files pandoc
for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${ARTIFACTS}/; done for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${ARTIFACTS}/; done
mv ${ARTIFACTS}/pandoc ${ARTIFACTS}/pandoc mv ${ARTIFACTS}/pandoc ${ARTIFACTS}/pandoc
cp COPYRIGHT ${ARTIFACTS}/ cp COPYRIGHT ${ARTIFACTS}/

View file

@ -428,6 +428,10 @@ flag trypandoc
Description: Build trypandoc cgi executable. Description: Build trypandoc cgi executable.
Default: False Default: False
flag nightly
Description: Add '-nightly-COMPILEDATE' to the output of '--version'.
Default: False
common common-options common common-options
default-language: Haskell2010 default-language: Haskell2010
build-depends: base >= 4.12 && < 5 build-depends: base >= 4.12 && < 5
@ -531,6 +535,9 @@ library
zlib >= 0.5 && < 0.7 zlib >= 0.5 && < 0.7
if !os(windows) if !os(windows)
build-depends: unix >= 2.4 && < 2.8 build-depends: unix >= 2.4 && < 2.8
if flag(nightly)
cpp-options: -DNIGHTLY
build-depends: template-haskell
if flag(lua53) if flag(lua53)
build-depends: hslua >= 2.1 && < 2.2, build-depends: hslua >= 2.1 && < 2.2,
hslua-aeson >= 2.1 && < 2.3 hslua-aeson >= 2.1 && < 2.3

View file

@ -1,4 +1,5 @@
{-# LANGUAGE CPP #-} {-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-} {-# LANGUAGE TupleSections #-}
@ -71,6 +72,21 @@ import qualified Data.Map as M
import qualified Data.Text as T import qualified Data.Text as T
import qualified Text.Pandoc.UTF8 as UTF8 import qualified Text.Pandoc.UTF8 as UTF8
#ifdef NIGHTLY
import qualified Language.Haskell.TH as TH
import Data.Time
#endif
#ifdef NIGHTLY
versionSuffix :: String
versionSuffix = "-nightly-" ++
$(TH.stringE =<<
TH.runIO (formatTime defaultTimeLocale "%F" <$> Data.Time.getCurrentTime))
#else
versionSuffix :: String
versionSuffix = ""
#endif
parseOptions :: [OptDescr (Opt -> IO Opt)] -> Opt -> IO Opt parseOptions :: [OptDescr (Opt -> IO Opt)] -> Opt -> IO Opt
parseOptions options' defaults = do parseOptions options' defaults = do
rawArgs <- map UTF8.decodeArg <$> getArgs rawArgs <- map UTF8.decodeArg <$> getArgs
@ -954,7 +970,7 @@ options =
peek top peek top
UTF8.hPutStrLn stdout UTF8.hPutStrLn stdout
$ T.pack $ T.pack
$ prg ++ " " ++ T.unpack pandocVersion ++ $ prg ++ " " ++ T.unpack pandocVersion ++ versionSuffix ++
compileInfo ++ "\nScripting engine: " ++ luaVersion ++ compileInfo ++ "\nScripting engine: " ++ luaVersion ++
"\nUser data directory: " ++ defaultDatadir ++ "\nUser data directory: " ++ defaultDatadir ++
('\n':copyrightMessage) ('\n':copyrightMessage)