Skip to content

Unexpected behavior with default true booleans #51

@theanine

Description

@theanine

Test program here:

FLAGS "$@" || exit $?
eval set -- "${FLAGS_ARGV}"
if [ ${FLAGS_foo} -eq ${FLAGS_TRUE} ]; then
	echo "true"
else
	echo "false"
fi

With:

DEFINE_boolean foo false "bar" "f"

Output (as expected):

$ foo-test.sh
false
$ foo-test.sh -f
true
$ foo-test.sh --nof
false
$ foo-test.sh --foo
true
$ foo-test.sh --nofoo
false

With:

DEFINE_boolean foo true "bar" "f"

Output (unexpected):

$ foo-test.sh
true
$ foo-test.sh -f
false
$ foo-test.sh --nof
false
$ foo-test.sh --foo
true
$ foo-test.sh --nofoo
false

If it's not obvious from the above output, the part that is unexpected is the output of foo-test.sh -f

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions