blob: 6d7807a61e1f166c86873828b75f8d28c1b455ef [file] [log] [blame] [edit]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package flags implements utilities to augment the standard Go flag package.
// It defines commonly used Vanadium flags, and implementations of the
// flag.Value interface for those flags to ensure that only valid values of
// those flags are supplied. Some of these flags may also be specified using
// environment variables directly and are documented accordingly; in these cases
// the command line value takes precedence over the environment variable.
//
// Flags are defined as 'groups' of related flags so that the caller may choose
// which ones to use without having to be burdened with the full set. The
// groups may be used directly or via the Flags type that aggregates multiple
// groups. In all cases, the flags are registered with a supplied flag.FlagSet
// and hence are not forced onto the command line unless the caller passes in
// flag.CommandLine as the flag.FlagSet to use.
//
// In general, this package will be used by vanadium profiles and the runtime
// implementations, but can also be used by any application that wants access to
// the flags and environment variables it supports.
package flags