testing lists in proc. Should be working.
This commit is contained in:
@@ -71,7 +71,7 @@ var commands = &cmds.Command{
|
||||
Documentation: lorem,
|
||||
}, func(opt *list.Opt) error {
|
||||
|
||||
log.I.Ln("adding seed", opt.String())
|
||||
//log.I.Ln("adding seed", opt.String())
|
||||
|
||||
return nil
|
||||
}),
|
||||
@@ -81,7 +81,7 @@ var commands = &cmds.Command{
|
||||
Documentation: lorem,
|
||||
}, func(opt *list.Opt) error {
|
||||
|
||||
log.I.Ln("adding peer", opt.String())
|
||||
//log.I.Ln("adding peer", opt.String())
|
||||
|
||||
return nil
|
||||
}),
|
||||
@@ -92,7 +92,7 @@ var commands = &cmds.Command{
|
||||
Default: "/ip4/127.0.0.1/tcp/8337",
|
||||
}, func(opt *list.Opt) error {
|
||||
|
||||
log.I.Ln("adding p2p listener", opt.String())
|
||||
//log.I.Ln("adding p2p listener", opt.String())
|
||||
|
||||
return nil
|
||||
}),
|
||||
@@ -101,8 +101,9 @@ var commands = &cmds.Command{
|
||||
|
||||
log.I.Ln("-- ", log2.App, "-", indra.SemVer, "- Network Freedom. --")
|
||||
|
||||
spew.Dump(c.GetCommand("indra serve").Configs)
|
||||
spew.Dump(c.GetCommand("indra serve").Configs["seed"].String())
|
||||
spew.Dump(c.GetValue("seed").List())
|
||||
spew.Dump(c.GetValue("peer").List())
|
||||
spew.Dump(c.GetValue("listen").List())
|
||||
|
||||
var err error
|
||||
var srv *server.Server
|
||||
|
||||
@@ -12,33 +12,45 @@ type App struct {
|
||||
}
|
||||
|
||||
func New(cmd *cmds.Command, args []string) (a *App, err error) {
|
||||
|
||||
var app App
|
||||
|
||||
app.Command = cmd
|
||||
|
||||
// Add the default configuration items for datadir/configfile
|
||||
cmds.GetConfigBase(cmd.Configs, cmd.Name, false)
|
||||
|
||||
// Add the help function
|
||||
cmd.AddCommand(cmds.Help())
|
||||
a = &App{Command: cmd}
|
||||
|
||||
// We first parse the CLI args, in case config file location has been
|
||||
// specified
|
||||
if a.launch, _, err = a.Command.ParseCLIArgs(args); log.E.Chk(err) {
|
||||
if app.launch, _, err = app.Command.ParseCLIArgs(args); log.E.Chk(err) {
|
||||
return
|
||||
}
|
||||
|
||||
if err = cmd.LoadConfig(); log.E.Chk(err) {
|
||||
return
|
||||
}
|
||||
a.Command, err = cmds.Init(cmd, nil)
|
||||
a.Envs = cmd.GetEnvs()
|
||||
if err = a.Envs.LoadFromEnvironment(); log.E.Chk(err) {
|
||||
|
||||
app.Command, err = cmds.Init(cmd, nil)
|
||||
|
||||
// Load the environment variables
|
||||
app.Envs = cmd.GetEnvs()
|
||||
if err = app.Envs.LoadFromEnvironment(); log.E.Chk(err) {
|
||||
return
|
||||
}
|
||||
|
||||
// This is done again, to ensure the effect of CLI args take precedence
|
||||
if a.launch, a.runArgs, err = a.Command.ParseCLIArgs(args); log.E.Chk(err) {
|
||||
if app.launch, app.runArgs, err = app.Command.ParseCLIArgs(args); log.E.Chk(err) {
|
||||
return
|
||||
}
|
||||
return
|
||||
|
||||
return &app, nil
|
||||
}
|
||||
|
||||
func (a *App) Launch() (err error) {
|
||||
err = a.launch.Entrypoint(a.Command, a.runArgs)
|
||||
err = a.launch.Entrypoint(a.launch, a.runArgs)
|
||||
log.E.Chk(err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package list
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cybriq/proc/pkg/opts/config"
|
||||
"github.com/cybriq/proc/pkg/opts/meta"
|
||||
"github.com/cybriq/proc/pkg/opts/normalize"
|
||||
"github.com/cybriq/proc/pkg/path"
|
||||
"go.uber.org/atomic"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Opt struct {
|
||||
@@ -51,14 +51,46 @@ func (o *Opt) RunHooks() (e error) {
|
||||
}
|
||||
|
||||
func (o *Opt) FromValue(v []string) *Opt {
|
||||
o.v.Store(v)
|
||||
old := o.v.Load().([]string)
|
||||
o.v.Store(append(old, v...))
|
||||
return o
|
||||
}
|
||||
|
||||
func (o *Opt) FromString(s string) (e error) {
|
||||
s = strings.TrimSpace(s)
|
||||
split := strings.Split(s, ",")
|
||||
o.v.Store(split)
|
||||
|
||||
if o.v.Load() == nil {
|
||||
o.v.Store([]string{})
|
||||
}
|
||||
|
||||
ov := o.v.Load().([]string)
|
||||
|
||||
sort.Strings(ov)
|
||||
|
||||
emptyMap := make(map[string]bool)
|
||||
|
||||
for _, v := range ov {
|
||||
emptyMap[v] = true
|
||||
}
|
||||
|
||||
for _, v := range split {
|
||||
emptyMap[v] = true
|
||||
}
|
||||
|
||||
ov = []string{}
|
||||
|
||||
for i := range emptyMap{
|
||||
|
||||
if i == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
ov = append(ov, i)
|
||||
}
|
||||
|
||||
o.v.Store(ov)
|
||||
|
||||
e = o.RunHooks()
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user