Add 'nightly' flag and build with this for nightlies.

This flag causes a suffix '-nightly-YYYY-MM-DD' to be added
to the version for nightlies.

Closes #8016.
This commit is contained in:
John MacFarlane 2022-04-11 17:17:11 -07:00
parent 0ddddf2f37
commit f81f5a2090
3 changed files with 23 additions and 4 deletions

View file

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

View file

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

View file

@ -56,6 +56,8 @@ import Text.Pandoc.Filter (Filter (..))
import Text.Pandoc.Highlighting (highlightingStyles)
import Text.Pandoc.Shared (ordNub, elemText, safeStrRead, defaultUserDataDir)
import Text.Printf
import Data.Time.Clock (UTCTime(utctDay), getCurrentTime)
import Data.Time.Format (defaultTimeLocale, iso8601DateFormat, formatTime)
#ifdef EMBED_DATA_FILES
import Text.Pandoc.Data (dataFiles)
@ -952,9 +954,20 @@ options =
openlibs
getglobal "_VERSION"
peek top
versionSuffix <-
#ifdef NIGHTLY
("-nightly-" ++)
. formatTime defaultTimeLocale
(iso8601DateFormat Nothing)
. utctDay
<$> Data.Time.Clock.getCurrentTime
#else
pure ""
#endif
UTF8.hPutStrLn stdout
$ T.pack
$ prg ++ " " ++ T.unpack pandocVersion ++
$ prg ++ " " ++
T.unpack pandocVersion ++ versionSuffix ++
compileInfo ++ "\nScripting engine: " ++ luaVersion ++
"\nUser data directory: " ++ defaultDatadir ++
('\n':copyrightMessage)