daemon/options: split option registration and parsing.

This allows us to add extra options before parsing.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2017-02-24 16:22:56 +10:30
parent 952722a8cf
commit a72dd8d9de
4 changed files with 11 additions and 3 deletions

View File

@ -71,6 +71,7 @@ int main(int argc, char *argv[])
| SECP256K1_CONTEXT_SIGN);
/* Handle options and config; move to .lightningd */
register_opts(dstate);
handle_opts(dstate, argc, argv);
/* Activate crash log now we're in the right place. */

View File

@ -447,10 +447,8 @@ static void opt_parse_from_config(struct lightningd_state *dstate)
tal_free(contents);
}
bool handle_opts(struct lightningd_state *dstate, int argc, char *argv[])
void register_opts(struct lightningd_state *dstate)
{
bool newdir = false;
opt_set_alloc(opt_allocfn, tal_reallocfn, tal_freefn);
opt_register_early_noarg("--help|-h", opt_usage_and_exit,
@ -469,6 +467,11 @@ bool handle_opts(struct lightningd_state *dstate, int argc, char *argv[])
&dstate->config_dir, &dstate->rpc_filename);
config_register_opts(dstate);
dev_register_opts(dstate);
}
bool handle_opts(struct lightningd_state *dstate, int argc, char *argv[])
{
bool newdir = false;
/* Get any configdir/testnet options first. */
opt_early_parse(argc, argv, opt_log_stderr_exit);

View File

@ -5,6 +5,9 @@
struct lightningd_state;
/* You can register additional options *after* this if you want. */
void register_opts(struct lightningd_state *dstate);
/* After this, we're in the .lightning dir, config file parsed.
* If we just created the dir, returns true.
*/

View File

@ -176,6 +176,7 @@ int main(int argc, char *argv[])
ld->daemon_dir = find_my_path(ld, argv[0]);
/* Handle options and config; move to .lightningd */
register_opts(&ld->dstate);
newdir = handle_opts(&ld->dstate, argc, argv);
/* Activate crash log now we're in the right place. */