git.iko.soy/typeable/pandoc
on master help sign in
Generate man page in cabal build process and include in data/.

The pandoc.1 man page is generated automatically after the cabal build process. It goes in `data/pandoc.1`. It can be obtained by the user who installs pandoc via cabal thus: pandoc --print-default-data-file pandoc.1 > pandoc.1

commit28cb50503b2f9428de34dee0d62f2e46f1c0fa59 authorJohn MacFarlane <jgm@berkeley.edu> dateWed 1 Jul 2015, 16:29 (11 years ago) parent958a615
6 files changed+23−16
INSTALL+1−1 Makefile+1−11 Setup.hs+17 make_deb.sh+1−2 make_osx_package.sh+1−2 pandoc.cabal+2
INSTALL+1−1
@@ -77,7 +77,7 @@ Quick install
7777
7878To build the `pandoc.1` man page:
7979
80− make man/man1/pandoc.1
80+ pandoc --print-default-data-file pandoc.1 > pandoc.1
8181
8282To build the `pandoc-citeproc` man pages, go to the pandoc-citeproc
8383build directory, and
Makefile+1−11
@@ -40,21 +40,11 @@ debpkg:
4040osxpkg:
4141 ./make_osx_package.sh
4242
43−man/man1/pandoc.1: README man/pandoc.1.template
44− @[ -n "$(pandoc)" ] || \
45− (echo "Could not find pandoc in dist/" && exit 1)
46− $(pandoc) $< -t man -s --template man/pandoc.1.template \
47− --filter man/capitalizeHeaders.hs \
48− --filter man/removeNotes.hs \
49− --filter man/removeLinks.hs \
50− -o $@
51−
5243download_stats:
5344 curl https://api.github.com/repos/jgm/pandoc/releases | \
5445 jq '[.[] | .assets | .[] | {name: .name, download_count: .download_count}]'
5546
5647clean:
5748 cabal clean
58− -rm man/man1/pandoc.1
5949
60−.PHONY: deps quick full install man clean test bench haddock osxpkg dist bindist prof download_stats
50+.PHONY: deps quick full install clean test bench osxpkg dist prof download_stats
Setup.hs+17
@@ -31,6 +31,8 @@ main :: IO ()
3131main = defaultMainWithHooks $ simpleUserHooks {
3232 -- enable hsb2hs preprocessor for .hsb files
3333 hookedPreProcessors = [ppBlobSuffixHandler]
34+ , postBuild = \args bf pkgdescr lbi ->
35+ makeManPages args bf pkgdescr lbi
3436 }
3537
3638ppBlobSuffixHandler :: PPSuffixHandler
@@ -45,3 +47,18 @@ ppBlobSuffixHandler = ("hsb", \_ _ ->
4547 Nothing -> error "hsb2hs is needed to build this program: cabal install hsb2hs"
4648 return ()
4749 })
50+
51+makeManPages :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo
52+ -> IO ()
53+makeManPages _ bf _ LocalBuildInfo{buildDir=buildDir}
54+ = do info verbosity "Creating data/pandoc.1"
55+ rawSystemExit verbosity progPath args
56+ where verbosity = fromFlagOrDefault normal $ buildVerbosity bf
57+ progPath = buildDir </> "pandoc" </> "pandoc"
58+ args = ["README", "-t", "man", "-s",
59+ "--template", "man/pandoc.1.template",
60+ "--filter", "man/capitalizeHeaders.hs",
61+ "--filter", "man/removeNotes.hs",
62+ "--filter", "man/removeLinks.hs",
63+ "-o", "data/pandoc.1"]
64+
make_deb.sh+1−2
@@ -30,7 +30,6 @@ echo Building pandoc...
3030cabal clean
3131cabal install --force --reinstall --flags="embed_data_files make-pandoc-man-pages" . pandoc-citeproc
3232
33−make -B man/man1/pandoc.1
3433# get pandoc-citeproc man page:
3534PANDOC_CITEPROC_PATH=`cabal unpack -d make_binary_package.tmp.$$ pandoc-citeproc | awk '{print $3;}'`
3635strip $SANDBOX/bin/pandoc
@@ -43,7 +42,7 @@ mkdir -p $DEST/share/doc/pandoc-citeproc
4342find $DIST -type d | xargs chmod 755
4443cp $SANDBOX/bin/pandoc $DEST/bin/
4544cp $SANDBOX/bin/pandoc-citeproc $DEST/bin/
46−cp man/man1/pandoc.1 $DEST/share/man/man1/pandoc.1
45+$SANDBOX/bin/pandoc --print-default-data-file pandoc.1 > $DEST/share/man/man1/pandoc.1
4746gzip -9 $DEST/share/man/man1/pandoc.1
4847cp $PANDOC_CITEPROC_PATH/man/man1/pandoc-citeproc.1 $DEST/share/man/man1/
4948gzip -9 $DEST/share/man/man1/pandoc-citeproc.1
make_osx_package.sh+1−2
@@ -27,7 +27,6 @@ cabal clean
2727cabal install cpphs hsb2hs
2828cabal install --ghc-options="-optl-mmacosx-version-min=10.6" --reinstall --flags="embed_data_files make-pandoc-man-pages" --ghc-options "-pgmP$CPPHS -optP--cpp" . pandoc-citeproc
2929
30−make -B man/man1/pandoc.1
3130# get pandoc-citeproc man page:
3231PANDOC_CITEPROC_PATH=`cabal unpack -d $DIST pandoc-citeproc | awk '{print $3;}'`
3332
@@ -38,7 +37,7 @@ for f in pandoc pandoc-citeproc; do
3837 cp $SANDBOX/bin/$f $DEST/bin/;
3938done
4039cp $PANDOC_CITEPROC_PATH/man/man1/pandoc-citeproc.1 $DEST/share/man/man1/
41−cp man/man1/pandoc.1 $DEST/share/man/man1/pandoc.1
40+$SANDBOX/bin/pandoc --print-default-data-file pandoc.1 > $DEST/share/man/man1/pandoc.1
4241
4342chown -R $ME:staff $DIST
4443
pandoc.cabal+2
@@ -106,6 +106,8 @@ Data-Files:
106106 data/sample.lua
107107 -- documentation
108108 README, COPYRIGHT
109+ -- man page (generated by Setup.hs after build:)
110+ data/pandoc.1
109111Extra-Source-Files:
110112 -- documentation
111113 INSTALL, BUGS, CONTRIBUTING.md, changelog