code: func initConfig() {
  	if cfgFile != "" { // enable ability to specify config file via flag
  		viper.SetConfigFile(cfgFile)
  	} else {
  		viper.SetConfigName("cfssl-trust") // name of config file (without extension)
  		for _, dir := range configLocations {
  			viper.AddConfigPath(dir)
  		}
  		viper.AddConfigPath(".")
  	}
  
  	viper.SetEnvPrefix("CFSSL_TRUST")
  	viper.AutomaticEnv() // read in environment variables that match
  
  	// If a config file is found, read it in.
  	err := viper.ReadInConfig()
  	if err == nil {
  		log.Info("cfssl-trust: loading from config file ", viper.ConfigFileUsed())
  	}
  
  	if bundleRelease != "" {
  		rel, err := release.Parse(bundleRelease)
  		if err != nil {
  			fmt.Fprintf(os.Stderr, "[!] Invalid release '%s'.\n", bundleRelease)
  			fmt.Fprintf(os.Stderr, "\tReason: %s\n", err)
  			os.Exit(1)
  		}
  		fmt.Println("selected release", rel)
  	}
  }
docs: // initConfig reads in config file and ENV variables if set.