Skip to content

DotMake.CommandLine v3.7.0

Latest

Choose a tag to compare

@calacayir calacayir released this 07 Sep 00:36
· 5 commits to main since this release
  • Improved: Redesigned CliNamer class. From now on, auto generated short aliases for commands and options
    will be single character only to be compatible with POSIX conventions
    (to prevent confusion with argument bundling/clustering e.g. -wp meaning -w and -p).
    This may be a BREAKING CHANGE in your CLI app so check your short aliases if you depended on auto-generation.

    The new rules:

    First letter of the name will be used to create short form which is converted according to [CliCommand].NameCasingConvention property;
    if it conflicts, the case of the letter is changed;
    if it conflicts again, first letter of the next word in the name is tried and so on.
    (e.g. Info -> i or I, ServerPort -> s or S or p or P, Option1 -> o or O)
    No short form alias will be added if a non-conflicting one can not be found, user can manually set a specific alias for these missing ones.

    For options, single hyphen/dash prefix is added to the short form.
    (e.g. Info -> -i or -I, ServerPort -> -s or -S or -p or -P, Option1 -> -o or -O)
    This can be changed via [CliCommand].ShortFormPrefixConvention property (default: SingleHyphen).

    More robust handling of conflicts in CliNamer, i.e. checks all conflicts at once and then throws an exception which
    lists all errors.

  • Improved: Strong name sign the DLLs for NuGet package. Signing will be done only when DotMake.snk exists,
    it's not committed to this repository.