climain

package
v6.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2024 License: BSD-2-Clause Imports: 14 Imported by: 0

README

Logic for parsing the Miller command line.

  • pkg/climain is the flag-parsing logic for supporting Miller's command-line interface. When you type something like mlr --icsv --ojson put '$sum = $a + $b' then filter '$sum > 1000' myfile.csv, it's the CLI parser which makes it possible for Miller to construct a CSV record-reader, a transformer chain of put then filter, and a JSON record-writer.
  • pkg/cli contains datatypes for the CLI-parser, which was split out to avoid a Go package-import cycle.
  • I don't use the Go flag package. The flag package is quite fine; Miller's command-line processing is multi-purpose between serving CLI needs per se as well as for manpage/docfile generation, and I found it simplest to roll my own command-line handling here. More importantly, some Miller verbs such as sort take flags more than once -- mlr sort -f field1 -n field2 -f field3 -- which is not supported by the flag package.

Documentation

Overview

Package climain contains high-level logic for parsing the main Miller command line. Package cli contains the flags table and most handlers; package cli is also invoked by verbs to parse their own flags.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseCommandLine

func ParseCommandLine(
	args []string,
) (
	options *cli.TOptions,
	recordTransformers []transformers.IRecordTransformer,
	err error,
)

ParseCommandLine is the entrypoint for handling the Miller command line: flags, verbs and their flags, and input file name(s).

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL