Exit with non-zero code when trying to do interactive onboarding and --batch is set

This commit is contained in:
Arturo Filastò 2018-09-17 16:16:56 +02:00
parent 6c49bd694f
commit d55cccc236
4 changed files with 14 additions and 1 deletions

View File

@ -13,7 +13,8 @@ func Run() {
root.Cmd.Version(ooni.Version)
_, err := root.Cmd.Parse(os.Args[1:])
if err != nil {
log.WithError(err).Error("failed to parse arguments")
log.WithError(err).Error("failure in main command")
os.Exit(1)
}
return
}

View File

@ -1,6 +1,8 @@
package onboard
import (
"errors"
"github.com/alecthomas/kingpin"
"github.com/apex/log"
"github.com/ooni/probe-cli/internal/cli/root"
@ -29,6 +31,9 @@ func init() {
}
return nil
}
if ctx.IsBatch == true {
return errors.New("cannot do onboarding in batch mode")
}
return onboard.Onboarding(ctx.Config)
})

View File

@ -48,6 +48,9 @@ func init() {
if err != nil {
return nil, err
}
if *isBatch {
ctx.IsBatch = true
}
return ctx, nil
}

View File

@ -23,6 +23,7 @@ type Context struct {
Config *config.Config
DB sqlbuilder.Database
Location *utils.LocationInfo
IsBatch bool
Home string
TempDir string
@ -60,6 +61,9 @@ func (c *Context) LocationLookup() error {
// config option is set to false
func (c *Context) MaybeOnboarding() error {
if c.Config.InformedConsent == false {
if c.IsBatch == true {
return errors.New("cannot run onboarding in batch mode")
}
if err := onboard.Onboarding(c.Config); err != nil {
return errors.Wrap(err, "onboarding")
}