| 307 | } |
| 308 | |
| 309 | struct configvar **initial_config_opts(const tal_t *ctx, |
| 310 | int *argc, char *argv[], |
| 311 | bool remove_args, |
| 312 | char **config_filename, |
| 313 | char **config_basedir, |
| 314 | char **config_netdir, |
| 315 | char **rpc_filename, |
| 316 | char **setconfig_file) |
| 317 | { |
| 318 | struct configvar **cmdline_cvs, **config_cvs, **cvs; |
| 319 | |
| 320 | options_ctx = ctx; |
| 321 | |
| 322 | /* This helps opt_usage. */ |
| 323 | opt_argv0 = argv[0]; |
| 324 | |
| 325 | /* Default chain (a global) is bitcoin. */ |
| 326 | chainparams = chainparams_for_network("bitcoin"); |
| 327 | |
| 328 | /* First, they could specify a config, or base dir. */ |
| 329 | *config_filename = NULL; |
| 330 | opt_register_early_arg("--conf=<file>", |
| 331 | opt_set_config_filename, |
| 332 | /* Doesn't show if it's NULL! */ |
| 333 | opt_show_charp, |
| 334 | config_filename, |
| 335 | "Specify configuration file"); |
| 336 | *config_basedir = default_base_configdir(ctx); |
| 337 | opt_register_early_arg("--lightning-dir=<dir>", |
| 338 | opt_set_lightning_dir, opt_show_charp, |
| 339 | config_basedir, |
| 340 | "Set base directory: network-specific subdirectory is under here"); |
| 341 | opt_register_early_arg("--network", opt_set_network, opt_show_network, |
| 342 | NULL, |
| 343 | "Select the network parameters (bitcoin, testnet," |
| 344 | " signet, or regtest)"); |
| 345 | opt_register_early_noarg("--testnet", |
| 346 | opt_set_specific_network, "testnet", |
| 347 | "Alias for --network=testnet"); |
| 348 | opt_register_early_noarg("--testnet4", |
| 349 | opt_set_specific_network, "testnet4", |
| 350 | "Alias for --network=testnet4"); |
| 351 | opt_register_early_noarg("--signet", |
| 352 | opt_set_specific_network, "signet", |
| 353 | "Alias for --network=signet"); |
| 354 | opt_register_early_noarg("--mainnet", |
| 355 | opt_set_specific_network, "bitcoin", |
| 356 | "Alias for --network=bitcoin"); |
| 357 | opt_register_early_noarg("--regtest", |
| 358 | opt_set_specific_network, "regtest", |
| 359 | "Alias for --network=regtest"); |
| 360 | /* Handle --version (and exit) here too */ |
| 361 | opt_register_version(); |
| 362 | |
| 363 | /* Allow them to override rpc-file too. */ |
| 364 | *rpc_filename = default_rpcfile(ctx); |
| 365 | opt_register_early_arg("--rpc-file", opt_set_talstr, opt_show_charp, |
| 366 | rpc_filename, |
no test coverage detected