Browse Source

jpictl: add `-S` flag to ignore the config file and always scan

Signed-off-by: Alejandro Mery <amery@jpi.io>
pull/34/head
Alejandro Mery 8 months ago
parent
commit
b8e1b321e5
  1. 16
      cmd/jpictl/config.go

16
cmd/jpictl/config.go

@ -22,6 +22,8 @@ type Config struct {
ConfigFile string
}
var forceScan bool
var cfg = &Config{
Base: "m",
Domain: "jpi.cloud",
@ -30,8 +32,12 @@ var cfg = &Config{
// LoadZones loads all zones and machines in the config directory
// or file
func (cfg *Config) LoadZones(resolve bool) (*cluster.Cluster, error) {
var zones *cluster.Cluster
var err error
if !forceScan {
// try config file first
zones, err := cluster.NewFromConfig(cfg.ConfigFile,
zones, err = cluster.NewFromConfig(cfg.ConfigFile,
cluster.ResolvePublicAddresses(resolve),
cluster.WithLogger(log),
)
@ -44,6 +50,7 @@ func (cfg *Config) LoadZones(resolve bool) (*cluster.Cluster, error) {
// file was bad
return nil, core.Wrap(err, "NewFromConfig(%q)", cfg.ConfigFile)
}
}
// default file doesn't exist. scan instead.
return cluster.NewFromDirectory(cfg.Base, cfg.Domain,
@ -53,7 +60,10 @@ func (cfg *Config) LoadZones(resolve bool) (*cluster.Cluster, error) {
}
func init() {
rootCmd.PersistentFlags().
StringVarP(&cfg.ConfigFile, "config-file", "f",
flags := rootCmd.PersistentFlags()
flags.StringVarP(&cfg.ConfigFile, "config-file", "f",
DefaultConfigFile, "config file (JSON or YAML)")
flags.BoolVarP(&forceScan, "force-scan", "S",
false, "ignore config file and scan the directory instead")
}

Loading…
Cancel
Save