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:
parent
f460936528
commit
dc03399cc3
3 changed files with 27 additions and 4 deletions
6
.github/workflows/nightly.yml
vendored
6
.github/workflows/nightly.yml
vendored
|
@ -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 --flag pandoc:embed_data_files 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 --flag pandoc:embed_data_files 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}/
|
||||
|
|
|
@ -428,6 +428,10 @@ flag trypandoc
|
|||
Description: Build trypandoc cgi executable.
|
||||
Default: False
|
||||
|
||||
flag nightly
|
||||
Description: Add '-nightly-COMPILEDATE' to the output of '--version'.
|
||||
Default: False
|
||||
|
||||
common common-options
|
||||
default-language: Haskell2010
|
||||
build-depends: base >= 4.12 && < 5
|
||||
|
@ -531,6 +535,9 @@ library
|
|||
zlib >= 0.5 && < 0.7
|
||||
if !os(windows)
|
||||
build-depends: unix >= 2.4 && < 2.8
|
||||
if flag(nightly)
|
||||
cpp-options: -DNIGHTLY
|
||||
build-depends: template-haskell
|
||||
if flag(lua53)
|
||||
build-depends: hslua >= 2.1 && < 2.2,
|
||||
hslua-aeson >= 2.1 && < 2.3
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
|
@ -71,6 +72,21 @@ import qualified Data.Map as M
|
|||
import qualified Data.Text as T
|
||||
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 options' defaults = do
|
||||
rawArgs <- map UTF8.decodeArg <$> getArgs
|
||||
|
@ -954,7 +970,7 @@ options =
|
|||
peek top
|
||||
UTF8.hPutStrLn stdout
|
||||
$ T.pack
|
||||
$ prg ++ " " ++ T.unpack pandocVersion ++
|
||||
$ prg ++ " " ++ T.unpack pandocVersion ++ versionSuffix ++
|
||||
compileInfo ++ "\nScripting engine: " ++ luaVersion ++
|
||||
"\nUser data directory: " ++ defaultDatadir ++
|
||||
('\n':copyrightMessage)
|
||||
|
|
Loading…
Reference in a new issue