#!/usr/bin/env -S gawk -E
@include "opt"
func main( p, Opt, i, j, aflag) {
# Defining the CLI
opt::flag(p,
"a",
"-a --alpha", _
"Alpha option")
opt::flag(p,
"d",
"-d --delta", _
"Delta option")
# Processing options as being encountered
Opt["ind"] = 1
switch (Opt["c"]) {
case "a":
print Opt["opt"] _" was just encountered"
# setting results for later use
aflag = 1
break
case "b":
print Opt["opt"] _" was just encountered with argument: " Opt["arg"]
break
case "c":
print Opt["opt"] _" was just encountered with argument: " Opt["arg"]
break
case "\0":
print _"unrecognized option just encountered" > "/dev/stderr"
exit 22
default:
print _"other recognized option just encountered"
}
}
# Now likely returns false unless you reset Opt["ind"], or you
# could analize strings after a positionals separator "--"
# Processing after encountering
if (aflag)
print _"Something when -a or --alpha was passed"
# Positional parameters
i = Opt["ind"]
if (i < ARGC)
print _"Positional parameters:"
for (; i < ARGC; i++)
print "[" ++j "]: " ARGV[i]
}
BEGIN {
exit main()
}
unassigned param(array P, string name, string args, string help, any default, string action)
Add option with 1 argument to parser.
Definition opt.awk:72
bool get(array O, array P, array< string > argv, number argc)
Get results of analyzing the next option argument from a parser. Iterator function.
Definition opt.awk:170
unassigned option(array P, string name, string args, string help, any default, any implicit, string action)
Add option with optional argument to parser.
Definition opt.awk:85
unassigned parser(array P, string name, string version, string description, prefix, long_prefix, auto_help, auto_version)
Create command-line argument parser.
Definition opt.awk:35
unassigned flag(array P, string name, string args, string help, string action)
Add boolean option (flag) to parser.
Definition opt.awk:60