Add remaining man page contents

This commit is contained in:
lash 2022-02-23 10:32:44 +00:00
parent af7f977007
commit 49a4e4b4b8
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
2 changed files with 74 additions and 4 deletions

View File

@ -20,6 +20,7 @@ def apply_groff(collection, v, arg=None, typ='arg'):
if len(s) > 0:
s += ', '
s += format_groff(flag, v, arg=arg, typ=typ)
s = "\n.TP\n" + s + "\n" + v
return s
@ -33,7 +34,6 @@ def format_groff(k, v, arg=None, typ='arg'):
if arg != None:
s += ' \\fI' + arg
s += '\\fP'
s = "\n.TP\n" + s + "\n" + v
return s
@ -87,6 +87,7 @@ class DocGenerator:
#self.config = config
self.arg_flags = arg_flags
self.docs = {}
self.envs = {}
# self.envs = {}
@ -151,7 +152,7 @@ class DocGenerator:
self.docs['n'] = o
o = DocEntry('--dumpconfig', argvalue='format')
o.set_groff('Output configuration settings rendered from environment and inputs. Valid arguments are \\fIini\\fP for ini file output, and \\fIenv\\fP for environment variable output')
o.set_groff('Output configuration settings rendered from environment and inputs. Valid arguments are \\fIini\\fP for ini file output, and \\fIenv\\fP for environment variable output. See \\fBCONFIGURATION\\fP.')
self.docs['dumpconfig'] = o
@ -175,10 +176,12 @@ class DocGenerator:
o = DocEntry('-p', '--rpc-provider')
o.set_groff('Fully-qualified URL of RPC provider.')
self.docs['p'] = o
self.envs['p'] = 'RPC_PROVIDER'
o = DocEntry('--rpc-dialect')
o.set_groff('RPC backend dialect. If specified it \\fImay\\fP help with encoding and decoding issues.')
self.docs['rpcdialect'] = o
self.envs['rpcdialect'] = 'RPC_DIALECT'
o = DocEntry('--height')
o.set_groff('Block height at which to query state for. Does not apply to transactions.')
@ -188,16 +191,19 @@ class DocGenerator:
o = DocEntry('--rpc-auth')
o.set_groff('RPC endpoint authentication method, e.g. how to handle a HTTP WWW-Authenticate header.')
self.docs['rpcauth'] = o
self.envs['rpcauth'] = 'RPC_AUTH'
o = DocEntry('--rpc-credentials')
o.set_groff('RPC endpoint authentication data. Format depends on the authentication method defined in \\fB--rpc-auth\\fP.')
self.docs['rpcendpoint'] = o
self.docs['rpccredentials'] = o
self.envs['rpccredentials'] = 'RPC_CREDENTIALS'
if self.arg_flags & Flag.CHAIN_SPEC:
o = DocEntry('-i', '--chain-spec', argvalue='chain_spec')
o.set_groff('Chain specification string, in the format <engine>:<fork>:<chain_id>:<common_name>. Example: "evm:london:1:ethereum".')
self.docs['i'] = o
self.envs['i'] = 'RPC_CREDENTIALS'
if self.arg_flags & Flag.UNSAFE:
@ -216,6 +222,7 @@ class DocGenerator:
o = DocEntry('-y', '--key-path', argvalue='path')
o.set_groff('Path to signing key.')
self.docs['y'] = o
self.envs['y'] = 'WALLET_KEY_FILE'
o = DocEntry('--passphrase-file', argvalue='path')
o.set_groff('Path to file containing password to unlock key file')
@ -282,7 +289,8 @@ class EnvDocGenerator:
def __add(self, k):
v = format_groff(k, self.config.get(k), None, typ='env')
#v = format_groff(k, self.config.get(k), None, typ='env')
v = apply_groff([k], self.config.get(k), None, typ='env')
self.envs[k] = v

View File

@ -22,6 +22,58 @@ from chainlib.eth.cli.config import Config
logging.basicConfig(level=logging.WARNING)
logg = logging.getLogger()
configuration_description = """
.SH CONFIGURATION
All configuration settings may be overriden both by environment variables, or by overriding settings with the contents of ini-files in the directory defined by the \\fB-c\\fP option.
The active configuration, with values assigned from environment and arguments, can be output using the \\fB--dumpconfig\\fP \\fIformat\\fP option. Note that entries having keys prefixed with underscore (e.g. _SEQ) are not actual configuration settings, and thus cannot be overridden with environment variables.
To refer to a configuration setting by environment variables, the \\fIsection\\fP and \\fIkey\\fP are concatenated together with an underscore, and transformed to upper-case. For example, the configuration variable \\fIFOO_BAZ_BAR\\fP refers to an ini-file entry as follows:
.EX
[foo]
bar_baz = xyzzy
.EE
In the \\fBENVIRONMENT\\fP section below, the relevant configuration settings for this tool is listed along with a short description of its meaning.
Some configuration settings may also be overriden by command line options. Also note that the use of the \\fB-n\\fP and \\fB--env-prefix\\fP options affect how environment and configuration is read. The effects of options on how configuration settings are affective is described in the respective \\fBOPTIONS\\fP section.
"""
seealso_description = """
.SH SEE ALSO
.BP
confini-dump(1), eth-keyfile(1)
"""
legal_description = """
.SH LICENSE
This documentation and its source is licensed under the Creative Commons Attribution-Sharealike 4.0 International license.
The source code of the tool this documentation describes is licensed under the GNU General Public License 3.0.
.SH COPYRIGHT
.P
Louis Holbrook <dev@holbrook.no> (https://holbrook.no)
PGP: 59A844A484AC11253D3A3E9DCDCBD24DD1D0E001
"""
source_description = """
.SH SOURCE CODE
https://git.defalsify.org
"""
argparser = argparse.ArgumentParser()
argparser.add_argument('-b', default=add_0x(hex(argflag_std_base)), help='argument flag bitmask')
argparser.add_argument('-c', help='config override directory')
@ -30,6 +82,7 @@ argparser.add_argument('-d', default='.', help='output directory')
argparser.add_argument('-v', action='store_true', help='turn on debug logging')
argparser.add_argument('--overrides-file', dest='overrides_file', help='load options description override from file')
argparser.add_argument('--overrides-env-dir', dest='overrides_env_dir', help='load envionment description override config from directory')
argparser.add_argument('--overrides-config-file', dest='overrides_config_file', help='load configuration text from file')
argparser.add_argument('header_file', help='groff file containing heading, synopsis and description')
args = argparser.parse_args(sys.argv[1:])
@ -75,12 +128,21 @@ f = open(args.header_file)
head = f.read()
f.close()
if args.overrides_config_file != None:
f = open(args.overrides_config_file, 'r')
configuration_description = f.read()
f.close()
(fd, fp) = tempfile.mkstemp()
f = os.fdopen(fd, 'w')
f.write(head)
f.write(str(g))
f.write(configuration_description)
f.write(".SH ENVIRONMENT\n\n")
f.write(str(ge))
f.write(legal_description)
f.write(source_description)
f.write(seealso_description)
f.close()
dest = os.path.join(args.d, toolname + '.1')