2017-01-23 01:05:27 +01:00
#! /usr/bin/make
# Designed to be run one level up
doc-wrongdir :
$( MAKE) -C .. doc-all
MANPAGES := doc/lightning-cli.1 \
2019-08-04 15:30:44 +02:00
doc/lightningd.8 \
2018-05-17 06:46:22 +02:00
doc/lightningd-config.5 \
2022-11-09 04:40:57 +01:00
doc/lightningd-rpc.7 \
2021-02-02 06:16:22 +01:00
doc/lightning-addgossip.7 \
2022-12-05 20:05:01 +01:00
doc/lightning-autoclean-once.7 \
2022-09-19 02:53:00 +02:00
doc/lightning-autoclean-status.7 \
2022-09-19 02:54:23 +02:00
doc/lightning-batching.7 \
2022-07-19 09:34:39 +02:00
doc/lightning-bkpr-channelsapy.7 \
doc/lightning-bkpr-dumpincomecsv.7 \
doc/lightning-bkpr-inspect.7 \
doc/lightning-bkpr-listaccountevents.7 \
doc/lightning-bkpr-listbalances.7 \
doc/lightning-bkpr-listincome.7 \
2018-12-07 18:31:16 +01:00
doc/lightning-check.7 \
2019-10-13 07:19:37 +02:00
doc/lightning-checkmessage.7 \
2018-04-10 08:03:15 +02:00
doc/lightning-close.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-connect.7 \
2022-07-16 15:18:27 +02:00
doc/lightning-commando.7 \
2023-03-31 03:56:18 +02:00
doc/lightning-commando-blacklist.7 \
doc/lightning-commando-listrunes.7 \
2022-07-16 15:18:27 +02:00
doc/lightning-commando-rune.7 \
2019-11-14 17:51:28 +01:00
doc/lightning-createonion.7 \
2020-12-14 02:21:48 +01:00
doc/lightning-createinvoice.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-datastore.7 \
2018-01-13 12:21:33 +01:00
doc/lightning-decodepay.7 \
2021-01-07 19:48:47 +01:00
doc/lightning-decode.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-deldatastore.7 \
2018-02-26 13:37:53 +01:00
doc/lightning-delexpiredinvoice.7 \
2022-09-19 02:52:58 +02:00
doc/lightning-delforward.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-delinvoice.7 \
2020-08-08 17:47:53 +02:00
doc/lightning-delpay.7 \
2023-03-06 04:00:58 +01:00
doc/lightning-disableinvoicerequest.7 \
2021-02-18 00:56:19 +01:00
doc/lightning-disableoffer.7 \
2018-12-03 06:20:25 +01:00
doc/lightning-disconnect.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-emergencyrecover.7 \
2020-07-12 05:30:35 +02:00
doc/lightning-feerates.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-fetchinvoice.7 \
2018-05-03 16:54:39 +02:00
doc/lightning-fundchannel.7 \
2019-06-06 01:32:04 +02:00
doc/lightning-fundchannel_start.7 \
doc/lightning-fundchannel_complete.7 \
doc/lightning-fundchannel_cancel.7 \
2021-07-15 18:48:36 +02:00
doc/lightning-funderupdate.7 \
2020-07-15 07:39:47 +02:00
doc/lightning-fundpsbt.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-getroute.7 \
2020-06-29 08:28:46 +02:00
doc/lightning-hsmtool.8 \
2017-01-23 01:05:27 +01:00
doc/lightning-invoice.7 \
2023-03-06 04:00:58 +01:00
doc/lightning-invoicerequest.7 \
2020-07-01 13:35:58 +02:00
doc/lightning-keysend.7 \
2019-01-07 20:09:59 +01:00
doc/lightning-listchannels.7 \
2023-03-20 01:21:50 +01:00
doc/lightning-listclosedchannels.7 \
2021-08-25 04:50:12 +02:00
doc/lightning-listdatastore.7 \
2019-01-11 23:05:46 +01:00
doc/lightning-listforwards.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-listfunds.7 \
2022-09-19 02:49:53 +02:00
doc/lightning-listhtlcs.7 \
2018-01-16 21:28:46 +01:00
doc/lightning-listinvoices.7 \
2023-03-06 04:00:58 +01:00
doc/lightning-listinvoicerequests.7 \
2021-02-18 00:56:19 +01:00
doc/lightning-listoffers.7 \
2019-02-23 06:00:04 +01:00
doc/lightning-listpays.7 \
2018-12-05 22:38:07 +01:00
doc/lightning-listpeers.7 \
2023-01-12 02:16:10 +01:00
doc/lightning-listpeerchannels.7 \
2019-02-23 06:00:04 +01:00
doc/lightning-listsendpays.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-makesecret.7 \
2020-09-09 05:11:37 +02:00
doc/lightning-multifundchannel.7 \
2020-09-09 12:26:14 +02:00
doc/lightning-multiwithdraw.7 \
2018-04-26 12:22:09 +02:00
doc/lightning-newaddr.7 \
2020-10-12 07:33:50 +02:00
doc/lightning-notifications.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-offer.7 \
2021-03-09 22:14:08 +01:00
doc/lightning-openchannel_abort.7 \
2021-03-11 05:33:47 +01:00
doc/lightning-openchannel_bump.7 \
2020-09-03 20:01:45 +02:00
doc/lightning-openchannel_init.7 \
2020-09-10 21:43:40 +02:00
doc/lightning-openchannel_signed.7 \
doc/lightning-openchannel_update.7 \
2018-01-13 12:21:33 +01:00
doc/lightning-pay.7 \
2021-06-23 21:31:47 +02:00
doc/lightning-parsefeerate.7 \
2019-08-10 01:22:23 +02:00
doc/lightning-plugin.7 \
2022-09-13 18:37:05 +02:00
doc/lightning-preapproveinvoice.7 \
2022-12-06 05:11:36 +01:00
doc/lightning-preapprovekeysend.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-recoverchannel.7 \
2020-06-10 02:20:18 +02:00
doc/lightning-reserveinputs.7 \
2021-01-07 19:45:47 +01:00
doc/lightning-sendinvoice.7 \
2019-11-14 17:51:28 +01:00
doc/lightning-sendonion.7 \
2021-01-14 04:36:49 +01:00
doc/lightning-sendonionmessage.7 \
2017-01-23 01:05:27 +01:00
doc/lightning-sendpay.7 \
2022-03-21 01:58:28 +01:00
doc/lightning-setchannel.7 \
2023-03-02 21:45:40 +01:00
doc/lightning-setpsbtversion.7 \
2021-07-13 23:04:30 +02:00
doc/lightning-sendcustommsg.7 \
2022-11-07 01:45:47 +01:00
doc/lightning-signinvoice.7 \
2019-10-13 07:19:37 +02:00
doc/lightning-signmessage.7 \
2022-06-24 03:39:12 +02:00
doc/lightning-staticbackup.7 \
2019-06-05 09:00:05 +02:00
doc/lightning-txprepare.7 \
doc/lightning-txdiscard.7 \
doc/lightning-txsend.7 \
2020-06-10 02:20:18 +02:00
doc/lightning-unreserveinputs.7 \
2020-08-18 04:22:53 +02:00
doc/lightning-utxopsbt.7 \
2017-01-23 01:09:43 +01:00
doc/lightning-waitinvoice.7 \
2018-03-08 01:19:55 +01:00
doc/lightning-waitanyinvoice.7 \
2019-12-26 11:19:09 +01:00
doc/lightning-waitblockheight.7 \
2018-04-26 12:12:17 +02:00
doc/lightning-waitsendpay.7 \
2020-08-21 15:59:24 +02:00
doc/lightning-withdraw.7 \
2020-08-31 14:42:28 +02:00
doc/lightning-ping.7 \
doc/lightning-stop.7 \
doc/lightning-signpsbt.7 \
doc/lightning-sendpsbt.7 \
doc/lightning-getinfo.7 \
doc/lightning-listtransactions.7 \
doc/lightning-listnodes.7 \
doc/lightning-listconfigs.7 \
doc/lightning-help.7 \
2022-11-02 19:48:24 +01:00
doc/lightning-getlog.7 \
doc/reckless.7
2017-01-23 01:05:27 +01:00
2023-02-06 02:51:30 +01:00
i f e q ( $( HAVE_SQLITE 3) , 1 )
MANPAGES += doc/lightning-listsqlschemas.7 \
doc/lightning-sql.7
e n d i f
2021-12-06 01:03:52 +01:00
doc-all : $( MANPAGES ) doc /index .rst
2021-11-04 15:13:43 +01:00
2021-12-06 01:03:52 +01:00
SCHEMAS := $( wildcard doc/schemas/*.json)
check-fmt-schemas : $( SCHEMAS :%=check -fmt -schema /%)
2022-02-05 14:38:18 +01:00
fmt-schemas : $( SCHEMAS :%=fmt -schema /%)
2021-11-04 15:13:43 +01:00
2021-12-06 01:03:52 +01:00
check-fmt-schema/% : %
@jq . < " $* " > " $* " .fmt && diff -u " $* " " $* .fmt " && rm " $* .fmt "
2022-02-05 14:38:18 +01:00
fmt-schema/% : %
@jq . < " $* " > " $* " .fmt && cat " $* " .fmt > " $* " && rm " $* .fmt "
2021-12-06 01:03:52 +01:00
check-doc : check -config -docs check -manpages check -fmt -schemas
2017-01-23 01:05:27 +01:00
2021-05-26 07:49:01 +02:00
# Some manpages use a schema, so need that added.
MARKDOWN_WITH_SCHEMA := $( shell grep -l GENERATE-FROM-SCHEMA $( MANPAGES:= .md) )
# These are hard to use in $(call) functions.
LBRACKET = (
RBRACKET = )
$(MARKDOWN_WITH_SCHEMA) : doc /lightning -%.7.md : doc /schemas /%.schema .json tools /fromschema .py
@if $( call SHA256STAMP_CHANGED) ; then $( call VERBOSE, " fromschema $@ " , tools/fromschema.py --markdownfile= $@ doc/schemas/$* .schema.json > $@ .tmp && grep -v SHA256STAMP: $@ .tmp > $@ && rm -f $@ .tmp && $( call SHA256STAMP,[ comment] : # $(LBRACKET),$(RBRACKET))); else touch $@; fi
2022-09-06 06:10:32 +02:00
# If we need to build lowdown, make tools/md2man.sh depend on it.
# That way it's not used in SHA256STAMP (which only uses direct
# dependencies), but make will be forced to build it.
i f e q ( $( HAVE_LOWDOWN ) , 0 )
LOWDOWN := $( TARGET_DIR) /lowdown-build/bin/lowdown
tools/md2man.sh : $( LOWDOWN )
touch $@
e l s e
LOWDOWN := lowdown
e n d i f
Makefile: replace mrkd with lowdown(1).
Here's the before-vs-after comparison (ignoring whitespace changes):
```diff
--- /tmp/before 2022-07-20 21:52:44.336641810 +0930
+++ /tmp/after 2022-07-20 21:55:54.355487769 +0930
@@ -1,7 +1,7 @@
-LIGHTNING-CLI(1) lightning-cli LIGHTNING-CLI(1)
+LIGHTNING-CLI(1) LIGHTNING-CLI(1)
NAME
- lightning-cli - Control lightning daemon
+ lightning-cli -- Control lightning daemon
SYNOPSIS
lightning-cli [OPTIONS] command
@@ -14,10 +14,7 @@
--conf=PATH Sets configuration file (default: lightning-dir/config ).
- --network=network
- --mainnet
- --testnet
- --signet Sets network explicitly.
+ --network=network --mainnet --testnet --signet Sets network explicitly.
--rpc-file=FILE Named pipe to use to talk to lightning daemon: default is lightning-rpc in the lightning directory.
@@ -43,8 +40,8 @@
--version/-V Print version number to standard output and exit.
- allow-deprecated-apis=BOOL Enable deprecated options. It defaults to true, but you should set it to false when testing
- to ensure that an upgrade won't break your configuration.
+ allow-deprecated-apis=BOOL Enable deprecated options. It defaults to true, but you should set it to false when testing to
+ ensure that an upgrade won't break your configuration.
COMMANDS
lightning-cli simply uses the JSON RPC interface to talk to lightningd, and prints the results. Thus the commands avail‐
@@ -67,7 +64,7 @@
lightning-cli help
- 1. Fund a 10k sat channel using uncomfirmed outputs
+ 2. Fund a 10k sat channel using uncomfirmed outputs
lightning-cli --keywords fundchannel id=028f...ae7d amount=10000sat minconf=0
@@ -84,4 +81,4 @@
Note: the modules in the ccan/ directory have their own licenses, but the rest of the code is covered by the BSD-style
MIT license.
- LIGHTNING-CLI(1)
+Core Lightning v0.11.0.1-350-gac2e137 LIGHTNING-CLI(1)
```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Fixes: #5437
2022-08-31 20:42:41 +02:00
$(MANPAGES) : doc /%: doc /%.md tools /md 2man .sh version_gen .h
2022-09-06 06:10:32 +02:00
@if $( call SHA256STAMP_CHANGED) ; then $( call VERBOSE, " md2man $< " , VERSION = $( VERSION) tools/md2man.sh $( LOWDOWN) $< > $@ && $( call SHA256STAMP,\\ \" ,) ) ; else touch $@ ; fi
2017-01-23 01:05:27 +01:00
2021-05-21 07:16:05 +02:00
$(MANPAGES) : $( FORCE )
2021-05-26 07:49:01 +02:00
$(MARKDOWN_WITH_SCHEMA) : $( FORCE )
2020-08-31 03:13:25 +02:00
2023-01-30 07:24:18 +01:00
# Use awk for preamble, then again for post, with the new docs in the middle.
# We can't put plugins/sql in deps directly, since they all get sha256!
doc/.sqlgen : plugins /sql
@plugins/sql --print-docs > $@
doc/lightning-sql.7.md : doc /.sqlgen $( FORCE )
@if $( call SHA256STAMP_CHANGED) ; then $( call VERBOSE, " sql-print-docs $@ " , awk " /GENERATE-DOC-START/ { print \$ $0 ; exit } { print \$ $0 } " < $@ > $@ .tmp && cat doc/.sqlgen >> $@ .tmp && ( awk " /GENERATE-DOC-END/ { PRINT=1 } { if (PRINT) { print \$ $0 } } " | grep -v SHA256STAMP) < $@ >> $@ .tmp && mv $@ .tmp $@ && $( call SHA256STAMP,[ comment] : # $(LBRACKET),$(RBRACKET))); else touch $@; fi
2017-01-23 01:05:27 +01:00
doc/protocol-%.svg : test /test_protocol
test/test_protocol --svg < test/commits/$* .script > $@
protocol-diagrams : $( patsubst %.script , doc /protocol -%.svg , $ ( notdir $ ( wildcard test /commits /*.script ) ) )
doc/deployable-lightning.pdf : doc /deployable -lightning .lyx doc /bitcoin .bib
lyx -E pdf $@ $<
doc/deployable-lightning.tex : doc /deployable -lightning .lyx
lyx -E latex $@ $<
state-diagrams : doc /normal -states .svg doc /simplified -states .svg doc /error -states .svg doc /full -states .svg
%.svg : %.dot
dot -Tsvg $< > $@ || ( rm -f $@ ; false )
doc/simplified-states.dot : test /test_state_coverage
test/test_state_coverage --dot --dot-simplify > $@
doc/normal-states.dot : test /test_state_coverage
test/test_state_coverage --dot > $@
doc/error-states.dot : test /test_state_coverage
test/test_state_coverage --dot-all --dot-include-errors > $@
doc/full-states.dot : test /test_state_coverage
test/test_state_coverage --dot-all --dot-include-errors --dot-include-nops > $@
maintainer-clean : doc -maintainer -clean
clean : doc -clean
2018-05-17 06:46:22 +02:00
check : check -manpages
2019-08-22 08:17:24 +02:00
# This needs plugins, too.
2022-04-12 06:59:30 +02:00
check-manpages : all -programs check -config -docs default -targets
2019-08-10 12:50:31 +02:00
@tools/check-manpage.sh cli/lightning-cli doc/lightning-cli.1.md
@tools/check-manpage.sh "lightningd/lightningd --lightning-dir=/tmp/" doc/lightningd-config.5.md
2022-11-11 02:49:29 +01:00
@awk '/^$$/ { do { getline } while ($$0 ~ /^( {4,}|\t)/) } /^\s*```/ { do { getline } while ($$0 !~ /^\s*```/) } /^([^`_\\]|`([^`\\]|\\.)*`|\b_|_\b|\\.)*\B_\B/ { print "" ; print "Unescaped underscore at " FILENAME ":" NR ":" ; print ; ret = 1 } ENDFILE { NR = 0 } END { exit ret }' doc/*.[ 0-9] .md
2017-01-23 01:05:27 +01:00
2021-06-16 03:12:17 +02:00
# Makes sure that fields mentioned in schema are in man page, and vice versa.
check-config-docs :
@for c in ` sed -n 's/^ "\(.*\)": {/\1/p' doc/schemas/listconfigs.schema.json | grep -v '^# version$$' | grep -v '^plugins$$' | grep -v '^important-plugins$$' ` ; do if ! grep -q " ^ \*\* $$ c\*\* " doc/lightningd-config.5.md; then echo " $$ c undocumented! " ; exit 1; fi ; done
2021-11-04 15:13:43 +01:00
@for c in ` grep -v '\[plugin ' doc/lightningd-config.5.md | sed -n 's/^ \*\*\([^*]*\)\*\*.*/\1/p' | grep -v '^\(help\|version\|mainnet\|testnet\|signet\|plugin\|important-plugin\|plugin-dir\|clear-plugins\)$$' ` ; do if ! grep -q '"' " $$ c " '"' doc/schemas/listconfigs.schema.json; then echo " $$ c documented but not in schema! " ; exit 1; fi ; done
2021-06-16 03:12:17 +02:00
2017-01-23 01:05:27 +01:00
doc-maintainer-clean :
$( RM) $( MANPAGES)
doc-clean :
$( RM) doc/deployable-lightning.{ aux,bbl,blg,dvi,log,out,tex}
2020-08-25 03:33:08 +02:00
doc/index.rst : $( MANPAGES :=.md )
2022-12-01 13:31:30 +01:00
@$( call VERBOSE, " genidx $@ " , \
find doc -maxdepth 1 -name '*\.[0-9]\.md' | \
cut -b 5- | LC_ALL = C sort | \
2023-01-31 16:06:27 +01:00
sed "s/\(.*\)\.\(.*\).*\.md/\1 <\1.\2.md>/" | \
2022-12-05 13:45:10 +01:00
python3 devtools/blockreplace.py doc/index.rst manpages --language= rst --indent " " \
2022-12-01 13:31:30 +01:00
)
2023-01-10 00:53:26 +01:00
2023-06-01 08:17:20 +02:00
# Overridden by GH CI if necessary.
BASE_REF = master
2023-01-10 00:53:26 +01:00
schema-added-check :
2023-06-01 08:17:20 +02:00
if git show --format= %B -s $( BASE_REF) .. | grep -q '^No-schema-diff-check' ; then echo $@ suppressed; exit 0; fi ; \
if git diff $( BASE_REF) -- doc/schemas | grep -q '^+.*{' && ! git diff $( BASE_REF) -- doc/schemas | grep -q '^+.*"added"' ; then \
git diff $( BASE_REF) -- doc/schemas; \
2023-01-20 15:42:07 +01:00
echo 'New schema fields must have "added": "vNEXTVERSION"' >& 2; exit 1; \
fi
2023-06-01 08:17:20 +02:00
2023-01-10 00:53:26 +01:00
schema-removed-check :
2023-06-01 08:17:20 +02:00
if git show --format= %B -s $( BASE_REF) .. | grep -q '^No-schema-diff-check' ; then echo $@ suppressed; exit 0; fi ; \
if git diff $( BASE_REF) -- doc/schemas | grep -q '^-.*{' && ! git diff $( BASE_REF) -- doc/schemas | grep -q '^-.*"deprecated"' && ! git diff $( BASE_REF) -- doc/schemas | grep -q '^-.*EXPERIMENTAL_FEATURES' ; then \
git diff $( BASE_REF) -- doc/schemas ; \
2023-01-20 15:42:07 +01:00
echo 'Schema fields must be "deprecated", with version, not removed' >& 2; exit 1; \
fi
2023-01-10 00:53:26 +01:00
schema-diff-check : schema -added -check schema -removed -check
2023-06-01 08:17:20 +02:00
check-source : schema -diff -check