Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Allow setting and reseting bool values via standard arguments #418

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

bokysan
Copy link

@bokysan bokysan commented Nov 1, 2024

Hi,

I'm sharing this work-in-progress code to see if this is something you would be willing to merge. So far, most of the code works, but I would need some help with:

  • Windows-specific tests, as I do not have a Windows machine (I have fixed them to the best of my knowledge)
  • Help with generating man pages

I've also deprecated AllowBoolValues since this feature replaces it. In my opinion, this was not really a good place to implement it in the first place. However, I would like to open a discussion about this as well.

Your response is appreciated. Thank you for the great work!


This commit enables the developer to allow setting boolean values to false. There already was a piece of code which indirectly allowed this, but default could never be true for bools due to #159.

With this patch, a new setting disable-type is introduced on boolean options. If unset, the bool variables act as before. However, if set, the user can set (and reset) the bool variable to either true or false.

The setting has three possible values: value. no and enable-disable.

When the setting is enabled, bool values will behave as follows:

| disable-value | Syntax |
| value | --bool[=true|false] |
| no | --[no-]bool |
| enable-disable | --[enable|disable]-bool |

This allows for use cases such as:

alias program='program --debug`
program --no-debug

or

./program --enable-raytracing --disable-antialiasing

This commit enables the developer to allow setting boolean values to
`false`. There already was a piece of code which indirectly allowed
this, but default could never be true for bools due to jessevdk#159.

With this patch, a new setting `disable-type` is introduced on boolean
options. If unset, the bool variables act as before. However, if set,
the user can set (and reset) the bool varaible to either `true` or
`false`.

The setting has three possible values: `value`. `no` and
`enable-disable`.

When the setting is enabled, bool values will behave as follows:

| *`disable-value`* | Syntax                    |
| `value`           | `--bool[=true|false]`     |
| `no`              | `--[no-]bool`             |
| `enable-disable`  | `--[enable|disable]-bool` |

This allows for use cases such as:

```sh
alias program='program --debug`
program --no-debug
```

or

```sh
./program --enable-raytracing --disable-antialiasing
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant