in cmd/root.go [70:170]
func initConfig() {
viper.SetDefault("srcType", "Amazon_S3")
viper.SetDefault("destStorageClass", "STANDARD")
viper.SetDefault("srcPrefix", "")
viper.SetDefault("srcPrefixList", "")
viper.SetDefault("srcCredential", "")
viper.SetDefault("srcEndpoint", "")
viper.SetDefault("destPrefix", "")
viper.SetDefault("destCredential", "")
viper.SetDefault("destAcl", "bucket-owner-full-control")
viper.SetDefault("options.chunkSize", dth.DefaultChunkSize)
viper.SetDefault("options.multipartThreshold", dth.DefaultMultipartThreshold)
viper.SetDefault("options.maxKeys", dth.DefaultMaxKeys)
viper.SetDefault("options.messageBatchSize", dth.DefaultMessageBatchSize)
viper.SetDefault("options.finderDepth", dth.DefaultFinderDepth)
viper.SetDefault("options.finderNumber", dth.DefaultFinderNumber)
viper.SetDefault("options.workerNumber", dth.DefaultWorkerNumber)
viper.SetDefault("options.includeMetadata", false)
viper.BindEnv("srcType", "SOURCE_TYPE")
viper.BindEnv("srcBucket", "SRC_BUCKET")
viper.BindEnv("srcPrefix", "SRC_PREFIX")
viper.BindEnv("srcPrefixList", "SRC_PREFIX_LIST")
viper.BindEnv("srcRegion", "SRC_REGION")
viper.BindEnv("srcEndpoint", "SRC_ENDPOINT")
viper.BindEnv("srcCredential", "SRC_CREDENTIALS")
viper.BindEnv("srcInCurrentAccount", "SRC_IN_CURRENT_ACCOUNT")
viper.BindEnv("skipCompare", "SKIP_COMPARE")
viper.BindEnv("destBucket", "DEST_BUCKET")
viper.BindEnv("destPrefix", "DEST_PREFIX")
viper.BindEnv("destRegion", "DEST_REGION")
viper.BindEnv("destCredential", "DEST_CREDENTIALS")
viper.BindEnv("destInCurrentAccount", "DEST_IN_CURRENT_ACCOUNT")
viper.BindEnv("destStorageClass", "DEST_STORAGE_CLASS")
viper.BindEnv("destAcl", "DEST_ACL")
viper.BindEnv("jobTableName", "JOB_TABLE_NAME")
viper.BindEnv("jobQueueName", "JOB_QUEUE_NAME")
viper.BindEnv("options.maxKeys", "MAX_KEYS")
viper.BindEnv("options.chunkSize", "CHUNK_SIZE")
viper.BindEnv("options.multipartThreshold", "MULTIPART_THRESHOLD")
viper.BindEnv("options.messageBatchSize", "MESSAGE_BATCH_SIZE")
viper.BindEnv("options.finderDepth", "FINDER_DEPTH")
viper.BindEnv("options.finderNumber", "FINDER_NUMBER")
viper.BindEnv("options.workerNumber", "WORKER_NUMBER")
viper.BindEnv("options.includeMetadata", "INCLUDE_METADATA")
if cfgFile != "" {
// Use config file from the flag.
viper.SetConfigFile(cfgFile)
} else {
// Default config file is "./config.yaml"
viper.AddConfigPath(".")
viper.SetConfigName("config")
}
viper.AutomaticEnv() // read in environment variables that match
// If a config file is found, read it in.
viper.ReadInConfig()
if err := viper.ReadInConfig(); err == nil {
log.Println("Using config file:", viper.ConfigFileUsed())
}
options := &dth.JobOptions{
ChunkSize: viper.GetInt("options.chunkSize"),
MultipartThreshold: viper.GetInt("options.multipartThreshold"),
MaxKeys: viper.GetInt32("options.maxKeys"),
MessageBatchSize: viper.GetInt("options.messageBatchSize"),
FinderDepth: viper.GetInt("options.finderDepth"),
FinderNumber: viper.GetInt("options.finderNumber"),
WorkerNumber: viper.GetInt("options.workerNumber"),
IncludeMetadata: viper.GetBool("options.includeMetadata"),
}
cfg = &dth.JobConfig{
SrcType: viper.GetString("srcType"),
SrcBucket: viper.GetString("srcBucket"),
SrcPrefix: viper.GetString("srcPrefix"),
SrcPrefixList: viper.GetString("srcPrefixList"),
SrcRegion: viper.GetString("srcRegion"),
SrcEndpoint: viper.GetString("srcEndpoint"),
SrcCredential: viper.GetString("srcCredential"),
SrcInCurrentAccount: viper.GetBool("srcInCurrentAccount"),
SkipCompare: viper.GetBool("skipCompare"),
DestBucket: viper.GetString("destBucket"),
DestPrefix: viper.GetString("destPrefix"),
DestRegion: viper.GetString("destRegion"),
DestCredential: viper.GetString("destCredential"),
DestStorageClass: viper.GetString("destStorageClass"),
DestAcl: viper.GetString("destAcl"),
DestInCurrentAccount: viper.GetBool("destInCurrentAccount"),
JobTableName: viper.GetString("jobTableName"),
JobQueueName: viper.GetString("jobQueueName"),
JobOptions: options,
}
}