click_config_file
click_config_file copied to clipboard
Invoking click tool with --help changes default display results
When using the option to show defaults in help text:
@click.group(context_settings=dict(show_default=True))
I see a bad behavior. When the tool is invoked with --help
, it has the wrong path for the config file:
$ toolname --help
Usage: jast [OPTIONS] COMMAND [ARGS]...
Options:
--config FILE Read configuration from FILE. [default:
/home/user/.config/toolname/config]
--help Show this message and exit. [default: False]
Commands:
command1
command2
command3
If the tool is invoked without --help
, or any command at all, such that the help is forced to display, I see the right default for the configuration file:
$ toolname
Usage: jast [OPTIONS] COMMAND [ARGS]...
Options:
--config FILE Read configuration from FILE. [default:
/home/user/.toolnamerc]
--help Show this message and exit. [default: False]
Commands:
command1
command2
command3
This could be confusing for users.
Could you please provide a minimal example to reproduce this?
Sure. This should reproduce:
import click
import click_config_file
@click.group(context_settings=dict(show_default=True))
@click.pass_context
@click_config_file.configuration_option(default='/tmp/.configfile')
def cli(ctx):
pass
I'll look into this. For now you can fix it by passing @click_config_file.configuration_option(default='/tmp/.configfile', implicit=False)