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
|
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}/
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue