Merge pull request #8525 from mohamedawnallah/generate-man-pages
Feature: generate man pages
This commit is contained in:
5 files changed
+79
-2
No files matched your search
@@ -3,6 +3,8 @@ ESCPKG := github.com\/lightningnetwork\/lnd
|
||||
MOBILE_PKG := $(PKG)/mobile
|
||||
TOOLS_DIR := tools
|
||||
|
||||
PREFIX ?= /usr/local
|
||||
|
||||
BTCD_PKG := github.com/btcsuite/btcd
|
||||
GOACC_PKG := github.com/ory/go-acc
|
||||
GOIMPORTS_PKG := github.com/rinchsan/gosimports/cmd/gosimports
|
||||
@@ -122,12 +124,20 @@ build-itest-race:
|
||||
@$(call print, "Building itest binary for ${backend} backend.")
|
||||
CGO_ENABLED=0 $(GOTEST) -v ./itest -tags="$(DEV_TAGS) $(RPC_TAGS) integration $(backend)" -c -o itest/itest.test$(EXEC_SUFFIX)
|
||||
|
||||
#? install: Build and install lnd and lncli binaries, place them in $GOPATH/bin
|
||||
install:
|
||||
#? install-binaries: Build and install lnd and lncli binaries, place them in $GOPATH/bin
|
||||
install-binaries:
|
||||
@$(call print, "Installing lnd and lncli.")
|
||||
$(GOINSTALL) -tags="${tags}" -ldflags="$(RELEASE_LDFLAGS)" $(PKG)/cmd/lnd
|
||||
$(GOINSTALL) -tags="${tags}" -ldflags="$(RELEASE_LDFLAGS)" $(PKG)/cmd/lncli
|
||||
|
||||
#? manpages: generate and install man pages
|
||||
manpages:
|
||||
@$(call print, "Generating man pages lncli.1 and lnd.1.")
|
||||
./scripts/gen_man_pages.sh $(DESTDIR) $(PREFIX)
|
||||
|
||||
#? install: Build and install lnd and lncli binaries, place them in $GOPATH/bin, generate and install man pages
|
||||
install: install-binaries manpages
|
||||
|
||||
#? release-install: Build and install lnd and lncli release binaries, place them in $GOPATH/bin
|
||||
release-install:
|
||||
@$(call print, "Installing release lnd and lncli.")
|
||||
|
||||
@@ -18,6 +18,8 @@ import (
|
||||
|
||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/jessevdk/go-flags"
|
||||
"github.com/lightningnetwork/lnd"
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/routing"
|
||||
"github.com/lightningnetwork/lnd/routing/route"
|
||||
@@ -1410,6 +1412,41 @@ func channelBalance(ctx *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var generateManPageCommand = cli.Command{
|
||||
Name: "generatemanpage",
|
||||
Usage: "Generates a man page for lncli and lnd as " +
|
||||
"lncli.1 and lnd.1 respectively.",
|
||||
Hidden: true,
|
||||
Action: actionDecorator(generateManPage),
|
||||
}
|
||||
|
||||
func generateManPage(ctx *cli.Context) error {
|
||||
// Generate the man pages for lncli as lncli.1.
|
||||
manpages, err := ctx.App.ToMan()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = os.WriteFile("lncli.1", []byte(manpages), 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Generate the man pages for lnd as lnd.1.
|
||||
config := lnd.DefaultConfig()
|
||||
fileParser := flags.NewParser(&config, flags.Default)
|
||||
fileParser.Name = "lnd"
|
||||
|
||||
var buf bytes.Buffer
|
||||
fileParser.WriteManPage(&buf)
|
||||
|
||||
err = os.WriteFile("lnd.1", buf.Bytes(), 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var getInfoCommand = cli.Command{
|
||||
Name: "getinfo",
|
||||
Usage: "Returns basic information related to the active daemon.",
|
||||
|
||||
@@ -508,6 +508,7 @@ func main() {
|
||||
fishCompletionCommand,
|
||||
listAliasesCommand,
|
||||
estimateRouteFeeCommand,
|
||||
generateManPageCommand,
|
||||
}
|
||||
|
||||
// Add any extra commands determined by build flags.
|
||||
|
||||
@@ -194,6 +194,10 @@
|
||||
* The [`closeallchannels` command now asks for confirmation before closing
|
||||
all channels](https://github.com/lightningnetwork/lnd/pull/8526).
|
||||
|
||||
* [Man pages](https://github.com/lightningnetwork/lnd/pull/8525) Generate man
|
||||
pages automatically using `lncli generatemanpage` command for both `lncli`
|
||||
and `lnd` commands when running `make install` in the Makefile.
|
||||
|
||||
# Improvements
|
||||
## Functional Updates
|
||||
### Tlv
|
||||
@@ -367,6 +371,7 @@
|
||||
* Keagan McClelland
|
||||
* Marcos Fernandez Perez
|
||||
* Matt Morehouse
|
||||
* Mohamed Awnallah
|
||||
* Ononiwu Maureen Chiamaka
|
||||
* Slyghtning
|
||||
* Tee8z
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage: ./gen_man_pages.sh DESTDIR PREFIX
|
||||
|
||||
DESTDIR="$1"
|
||||
PREFIX="$2"
|
||||
|
||||
# Check if lncli is installed.
|
||||
if ! command -v lncli &> /dev/null
|
||||
then
|
||||
echo "lncli could not be found. Please install lncli before running this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ignore warnings regarding HTMLBlock detection in go-md2man package
|
||||
# since using "<...>" is part of our docs.
|
||||
lncli generatemanpage 2>&1 | grep -v "go-md2man does not handle node type HTMLSpan" || true
|
||||
|
||||
echo "Installing man pages to $DESTDIR$PREFIX/share/man/man1."
|
||||
install -m 644 lnd.1 "$DESTDIR$PREFIX/share/man/man1/lnd.1"
|
||||
install -m 644 lncli.1 "$DESTDIR$PREFIX/share/man/man1/lncli.1"
|
||||
|
||||
# Remove lncli.1 and lnd.1 artifacts from the current working directory.
|
||||
rm -f lncli.1 lnd.1
|
||||
Reference in new issue
Block a user