Giter Site home page Giter Site logo

Comments (3)

natemcmaster avatar natemcmaster commented on August 20, 2024

Checkout how app.VersionOptionFromAssemblyAttributes is implemented. It's a helper method that just calls .VersionOption. If you want to customize things, use .VersionOption instead

/// <summary>
/// Finds <see cref="AssemblyInformationalVersionAttribute"/> on <paramref name="assembly"/> and uses that
/// to set <see cref="CommandLineApplication.OptionVersion"/>.
/// <para>
/// Uses the Version that is part of the <see cref="AssemblyName"/> of the specified assembly
/// if no <see cref="AssemblyInformationalVersionAttribute"/> is applied.
/// </para>
/// </summary>
/// <param name="app"></param>
/// <param name="assembly"></param>
/// <exception cref="ArgumentNullException">Either <paramref name="app"/> or <paramref name="assembly"/> is <c>null</c>.</exception>
public static CommandOption VersionOptionFromAssemblyAttributes(this CommandLineApplication app, Assembly assembly)
=> VersionOptionFromAssemblyAttributes(app, Strings.DefaultVersionTemplate, assembly);
/// <summary>
/// Finds <see cref="AssemblyInformationalVersionAttribute"/> on <paramref name="assembly"/> and uses that
/// to set <see cref="CommandLineApplication.OptionVersion"/>.
/// <para>
/// Uses the Version that is part of the <see cref="AssemblyName"/> of the specified assembly
/// if no <see cref="AssemblyInformationalVersionAttribute"/> is applied.
/// </para>
/// </summary>
/// <param name="app"></param>
/// <param name="template"></param>
/// <param name="assembly"></param>
/// <exception cref="ArgumentNullException">Either <paramref name="app"/> or <paramref name="assembly"/> is <c>null</c>.</exception>
public static CommandOption VersionOptionFromAssemblyAttributes(this CommandLineApplication app, string template, Assembly assembly)
=> app.VersionOption(template, GetInformationalVersion(assembly));
private static string? GetInformationalVersion(Assembly assembly)
{
var infoVersion = assembly
?.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
?.InformationalVersion;
return string.IsNullOrWhiteSpace(infoVersion)
? assembly?.GetName().Version.ToString()
: infoVersion;
}

from commandlineutils.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.