Skip to content

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

Open
bokysan wants to merge 2 commits intojessevdk:mainfrom
bokysan:main
Open

WIP: Allow setting and reseting bool values via standard arguments#418
bokysan wants to merge 2 commits intojessevdk:mainfrom
bokysan:main

Conversation

@bokysan
Copy link
Copy Markdown

@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
```
num: A number

Available commands:
bommand A command with only hidden options
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

command

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.

2 participants