func()

in cmd/utils/config/node.go [80:111]


func (c *config) setNodeConfig(nodeName, nodeFlag, resourceIDFlag, subscriptionIDFlag,
	nodeResourceGroupFlag, vmssFlag, instanceIDFlag string,
) error {
	if err := os.MkdirAll(Dir(), 0o700); err != nil {
		return fmt.Errorf("creating config directory: %w", err)
	}
	if err := c.ReadInConfig(); err != nil && !errors.Is(err, fs.ErrNotExist) {
		return fmt.Errorf("reading config: %w", err)
	}
	// delete the node config if it already exists to avoid mutually exclusive config
	if c.IsSet("nodes." + nodeName) {
		if err := c.deleteNodeConfig(nodeName); err != nil {
			return fmt.Errorf("deleting node config: %w", err)
		}
	}

	if nodeFlag != "" {
		c.Set("nodes."+nodeName+".node", nodeFlag)
	} else if resourceIDFlag != "" {
		c.Set("nodes."+nodeName+".id", resourceIDFlag)
	} else {
		c.Set("nodes."+nodeName+".subscription", subscriptionIDFlag)
		c.Set("nodes."+nodeName+".node-resource-group", nodeResourceGroupFlag)
		c.Set("nodes."+nodeName+".vmss", vmssFlag)
		c.Set("nodes."+nodeName+".instance-id", instanceIDFlag)
	}

	if err := c.WriteConfig(); err != nil {
		return fmt.Errorf("writing config: %w", err)
	}
	return nil
}