urfave/cli

FilePath does not take precedence over EnvVar

zc-devs opened this issue · 0 comments

My urfave/cli version is v2.27.1

Dependency Management

  • I am unsure of what my dependency management setup is.

Describe the bug

FilePath does not take precedence over EnvVar as described in documentation.

To reproduce

  1. Set some flag
&cli.StringFlag{
	EnvVars:  []string{"WOODPECKER_DATABASE_DATASOURCE"},
	Name:     "datasource",
	Usage:    "database driver configuration string",
	Value:    "woodpecker.sqlite",
	FilePath: os.Getenv("WOODPECKER_DATABASE_DATASOURCE_FILE"),
},
  1. Set EnvVar:
export WOODPECKER_DATABASE_DATASOURCE=/var/lib/woodpecker/woodpecker.sqlite
  1. Set FilePath variable:
export WOODPECKER_DATABASE_DATASOURCE_FILE=/run/secrets/woodpecker-datasource.conf
  1. Get /var/lib/woodpecker/woodpecker.sqlite instead /run/secrets/woodpecker-datasource.conf in datasource flag.

Observed behavior

Step 4.

Expected behavior

FilePath should take precedence over EnvVar. So, I should get /run/secrets/woodpecker-datasource.conf in datasource flag.

Additional context

woodpecker-ci/woodpecker#3389