Skip to content

clarius/dotnet-evergreen

Icon dotnet-evergreen

Version Downloads License Build

A dotnet global tool runner that automatically updates the tool package before running it, checks for updates while it runs, and restarts the tool as needed after updating it.

dotnet evergreen
  Run an evergreen version of a tool

Usage:
  dotnet evergreen [options] [<tool> [<args>...]]

Arguments:
  <tool>  Package Id of tool to run.
  <args>  Additional arguments and options supported by the tool

Options:
  -s, --source <source>      NuGet feed to check for updates. [default: https://api.nuget.org/v3/index.json]
  --singleton                Ensure a single tool process is running.
  -i, --interval <interval>  Time interval in seconds for the update checks. [default: 5]
  -f, --force                Stop all running tool processes to apply updates. [default: True]
  -p, --prerelease           Whether to include pre-release packages. [default: False]
  -q, --quiet                Do not display any informational messages.
  -?, -h, --help             Show help and usage information
  --version                  Show version information

Features:

  • Automatically exits if the tool also runs to completion

  • Forwards exit code from the tool

  • Restarts tool as needed to apply updates

  • Stops all other tool running processes so updating succeeds (can be opted out with -f=false)

  • Ensures a single tool is running (--singleton option)

  • Passes all tool options verbatim (except for evergreen options, specified before the tool argument)

  • Automatically discovers tool command when it doesn't match the tool package id (i.e. dotnet-eventgrid > eventgrid).

  • Supports dotnetconfig for options. Example:

    [evergreen]
      interval = 5
      source = https://myfeed.com/index.json 
      singleton = true
      prerelease = true
    

Examples:

> dotnet evergreen dotnet-echo
> dotnet evergreen dotnet-tor