diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index fa42816ad..87a7758c9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -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}/ diff --git a/pandoc.cabal b/pandoc.cabal index 6b4c0b8ad..1cd724974 100644 --- a/pandoc.cabal +++ b/pandoc.cabal @@ -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 diff --git a/src/Text/Pandoc/App/CommandLineOptions.hs b/src/Text/Pandoc/App/CommandLineOptions.hs index ffb7c5eb8..797a73725 100644 --- a/src/Text/Pandoc/App/CommandLineOptions.hs +++ b/src/Text/Pandoc/App/CommandLineOptions.hs @@ -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)