- I think it would be better if one for commands only, one for the spec handling core logic so people won't be confused by the core logic inside the commands folder (cleaner I guess) - Regen docs
141 lines
4.3 KiB
Go
141 lines
4.3 KiB
Go
package text
|
|
|
|
import (
|
|
"github.com/versenilvis/iris/spec"
|
|
)
|
|
|
|
func init() {
|
|
// awk
|
|
spec.Register(&spec.Spec{
|
|
Name: "awk",
|
|
Description: "pattern-directed scanning",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-F", Description: "field separator"},
|
|
{Name: "-v", Description: "assign variable"},
|
|
{Name: "-f", Description: "read program from file"},
|
|
{Name: "-i", Description: "in-place edit (gawk)"},
|
|
{Name: "--posix", Description: "POSIX compat mode"},
|
|
{Name: "-W", Description: "compatibility options"},
|
|
},
|
|
})
|
|
|
|
// gawk is also common
|
|
spec.Register(&spec.Spec{
|
|
Name: "gawk",
|
|
Description: "GNU awk",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-F", Description: "field separator"},
|
|
{Name: "-v", Description: "assign variable"},
|
|
{Name: "-f", Description: "read program from file"},
|
|
{Name: "-i", Description: "in-place edit"},
|
|
{Name: "--sandbox", Description: "sandbox mode"},
|
|
{Name: "--profile", Description: "profiling output"},
|
|
},
|
|
})
|
|
|
|
// sed
|
|
spec.Register(&spec.Spec{
|
|
Name: "sed",
|
|
Description: "stream editor",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-e", Description: "add expression"},
|
|
{Name: "-f", Description: "read script from file"},
|
|
{Name: "-i", Description: "in-place edit"},
|
|
{Name: "-n", Description: "suppress default output"},
|
|
{Name: "-E", Description: "extended regex"},
|
|
{Name: "-r", Description: "extended regex (GNU)"},
|
|
{Name: "-z", Description: "null-delimited lines"},
|
|
{Name: "--sandbox", Description: "sandbox mode"},
|
|
},
|
|
})
|
|
|
|
// xargs
|
|
spec.Register(&spec.Spec{
|
|
Name: "xargs",
|
|
Description: "build and run commands from stdin",
|
|
Options: []spec.Option{
|
|
{Name: "-I", Description: "replace string (e.g. -I{})"},
|
|
{Name: "-n", Description: "max args per command"},
|
|
{Name: "-P", Description: "parallel jobs"},
|
|
{Name: "-0", Description: "null-delimited input"},
|
|
{Name: "-d", Description: "custom delimiter"},
|
|
{Name: "-t", Description: "print command before executing"},
|
|
{Name: "-p", Description: "prompt before executing"},
|
|
{Name: "-r", Description: "no run if empty input"},
|
|
{Name: "--no-run-if-empty", Description: "don't run if no input"},
|
|
},
|
|
})
|
|
|
|
// tr
|
|
spec.Register(&spec.Spec{
|
|
Name: "tr",
|
|
Description: "translate or delete characters",
|
|
Options: []spec.Option{
|
|
{Name: "-d", Description: "delete characters"},
|
|
{Name: "-s", Description: "squeeze repeated chars"},
|
|
{Name: "-c", Description: "complement set"},
|
|
},
|
|
})
|
|
|
|
// sort
|
|
spec.Register(&spec.Spec{
|
|
Name: "sort",
|
|
Description: "sort lines of text",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-n", Description: "numeric sort"},
|
|
{Name: "-r", Description: "reverse sort"},
|
|
{Name: "-k", Description: "sort by key field"},
|
|
{Name: "-t", Description: "field separator"},
|
|
{Name: "-u", Description: "unique (remove duplicates)"},
|
|
{Name: "-f", Description: "ignore case"},
|
|
{Name: "-h", Description: "human-readable sort"},
|
|
{Name: "-V", Description: "version sort"},
|
|
{Name: "-o", Description: "output file"},
|
|
{Name: "--parallel", Description: "parallel sort"},
|
|
},
|
|
})
|
|
|
|
// uniq
|
|
spec.Register(&spec.Spec{
|
|
Name: "uniq",
|
|
Description: "filter adjacent duplicate lines",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-c", Description: "prefix count"},
|
|
{Name: "-d", Description: "only duplicates"},
|
|
{Name: "-u", Description: "only unique"},
|
|
{Name: "-i", Description: "ignore case"},
|
|
{Name: "-f", Description: "skip n fields"},
|
|
{Name: "-s", Description: "skip n chars"},
|
|
},
|
|
})
|
|
|
|
// cut
|
|
spec.Register(&spec.Spec{
|
|
Name: "cut",
|
|
Description: "extract columns from lines",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-d", Description: "delimiter"},
|
|
{Name: "-f", Description: "field numbers (e.g. 1,3 or 1-3)"},
|
|
{Name: "-c", Description: "character positions"},
|
|
{Name: "--output-delimiter", Description: "output delimiter"},
|
|
},
|
|
})
|
|
|
|
// tee
|
|
spec.Register(&spec.Spec{
|
|
Name: "tee",
|
|
Description: "read stdin, write to stdout and files",
|
|
Generator: spec.FileGenerator(),
|
|
Options: []spec.Option{
|
|
{Name: "-a", Description: "append to files"},
|
|
{Name: "-i", Description: "ignore interrupts"},
|
|
},
|
|
})
|
|
}
|