func initializeCommandLineConfig(flags *flag.FlagSet) *Configuration {
	var conf Configuration
	flags.StringVarP(&conf.configFileLocation, "config-file", "c", "", "The location of the config file to use")
	flags.BoolVar(&conf.noConfigFile, "no-config-file", false, "To not load any config file")
	flags.UintVar(&conf.IndentationSize, "indent-size", 0, "The number of spaces to indent output by")
	flags.StringVar(&conf.PreferredSource, "preferred-source", "", "The preferred source to use, if available and able to be provided")
	flags.StringVarP(&conf.Source, "source", "s", "", "The source to use (will error if unavailable or unable to be provided)")
	return &conf
}
initializeCommandLineConfig initializes the command line configuration.
package config
import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
	"strconv"
	"github.com/Rican7/define/registry"
	"github.com/fatih/structs"
	homedir "github.com/mitchellh/go-homedir"
	flag "github.com/ogier/pflag"
	"github.com/imdario/mergo"
)
type Configuration struct {
	IndentationSize uint
	PreferredSource string
	Source          string
	providerConfigs    map[string]registry.Configuration
	configFileLocation string
	noConfigFile       bool
}