checking in- needs some refinement then done

This commit is contained in:
2025-02-09 23:07:25 -05:00
parent 64b669edc3
commit d8469533a7
22 changed files with 1110 additions and 115 deletions

View File

@@ -34,8 +34,8 @@ func main() {
var res *netsplit.StructuredResults
var noStrict bool
var strictErr error
var splitErr = new(netsplit.SplitErr)
var parser = flags.NewParser(args, flags.Default)
var splitErr *netsplit.SplitErr = new(netsplit.SplitErr)
var parser *flags.Parser = flags.NewParser(args, flags.Default)
if _, err = parser.Parse(); err != nil {
switch flagsErr := err.(type) {
@@ -55,35 +55,21 @@ func main() {
log.Panicln(err)
}
// If args.Version or args.DetailVersion are true, just print them and exit.
if args.DetailVersion || args.Version {
if args.Version {
fmt.Println(version.Ver.Short())
return
} else if args.DetailVersion {
switch parser.Active.Name {
case "version":
if args.Version.DetailVersion {
fmt.Println(version.Ver.Detail())
return
} else {
fmt.Println(version.Ver.Short())
return
}
}
switch parser.Active.Name {
case "net":
if origPfx, err = netip.ParsePrefix(args.ExplicitNetwork.Network.Network); err != nil {
log.Panicln(err)
}
pfx = netipx.PrefixIPNet(origPfx.Masked())
cmnArgs = common{
outputOpts: outputOpts{
SuppressRemaining: true,
Plain: args.ExplicitNetwork.Plain,
Verbose: args.ExplicitNetwork.Verbose,
Seperator: args.ExplicitNetwork.Seperator,
Fmt: args.ExplicitNetwork.Fmt,
},
AllowReserved: true,
AllowHostNet: true,
Network: args.ExplicitNetwork.Network,
}
cmnArgs = args.ExplicitNetwork.common
nets = make([]*netip.Prefix, 1)
nets[0] = new(netip.Prefix)
*nets[0] = origPfx.Masked()
@@ -91,14 +77,16 @@ func main() {
log.Panicln(err)
}
return
case "reserved":
// TODO
case "table":
// Account for a weird redundant CLI condition.
if args.Table.tableOpts.NoIpv4 && args.Table.tableOpts.NoIpv6 {
args.Table.tableOpts.NoIpv6 = false
args.Table.tableOpts.NoIpv4 = false
if args.Table.NoIpv4 && args.Table.NoIpv6 {
args.Table.NoIpv6 = false
args.Table.NoIpv4 = false
}
buf = new(bytes.Buffer)
if err = tblTpl.ExecuteTemplate(buf, "table.tpl", args.Table.tableOpts); err != nil {
if err = tblTpl.ExecuteTemplate(buf, "table.tpl", args.Table); err != nil {
log.Panicln(err)
}
os.Stdout.Write(buf.Bytes())
@@ -128,11 +116,7 @@ func main() {
origPfx = *resPfx
}
pfx = netipx.PrefixIPNet(origPfx.Masked())
cmnArgs = common{
outputOpts: args.Parse.outputOpts,
AllowReserved: args.Parse.AllowReserved,
AllowHostNet: args.Parse.AllowHostNet,
}
cmnArgs = args.Parse.common
if err = printNets(&origPfx, pfx, nets, remaining, &cmnArgs, res.GetSplitter()); err != nil {
log.Panicln(err)
}
@@ -191,6 +175,10 @@ func main() {
PrefixLengths: args.VLSM.Sizes,
BaseSplitter: new(netsplit.BaseSplitter),
}
default:
err = flags.ErrCommandRequired
log.Println(err)
os.Exit(1)
}
if origPfx, err = netip.ParsePrefix(cmnArgs.Network.Network); err != nil {
log.Panicln(err)