in main.go [413:518]
func main() {
rootCmd.SetVersionTemplate(`{{printf "%s\n" .Version}}`)
rootCmd.PersistentFlags().StringVarP(&logFormat, "log-format", "f", "text",
"Format in which to log")
rootCmd.PersistentFlags().StringVarP(&logLevel, "log-level", "l", "warning",
"Level at which to log")
rootCmd.PersistentFlags().BoolVar(&logDebug, "log-debug", false,
"Enable verbose source debug logging")
rootCmd.AddCommand(accessCmd)
accessCmd.Flags().Int64Var(&accessGeneration, "generation", 0,
"Get a specific generation")
if err := accessCmd.Flags().MarkDeprecated("generation",
"please use hash notation instead (e.g. my-secrets/api-key#12345)"); err != nil {
panic(err)
}
rootCmd.AddCommand(bootstrapCmd)
bootstrapCmd.Flags().StringVar(&projectID, "project", "",
"Google Cloud Project ID")
if err := bootstrapCmd.MarkFlagRequired("project"); err != nil {
panic(err)
}
bootstrapCmd.Flags().StringVar(&bucket, "bucket", "",
"Name of the Cloud Storage bucket to create")
if err := bootstrapCmd.MarkFlagRequired("bucket"); err != nil {
panic(err)
}
bootstrapCmd.Flags().StringVar(&bucketLocation, "bucket-location", "US",
"Location in which to create Cloud Storage bucket")
bootstrapCmd.Flags().StringVar(&kmsLocation, "kms-location", "global",
"Location in which to create the Cloud KMS key ring")
bootstrapCmd.Flags().StringVar(&kmsKeyRing, "kms-keyring", "berglas",
"Name of the KMS key ring to create")
bootstrapCmd.Flags().StringVar(&kmsCryptoKey, "kms-key", "berglas-key",
"Name of the KMS key to create")
rootCmd.AddCommand(completionCmd)
rootCmd.AddCommand(createCmd)
createCmd.Flags().StringVar(&key, "key", "",
"KMS key to use for encryption")
createCmd.Flags().StringSliceVar(&smLocations, "locations", nil,
"Comma-separated canonical IDs in which to replicate secrets (e.g. 'us-east1,us-west-1')")
rootCmd.AddCommand(deleteCmd)
rootCmd.AddCommand(editCmd)
editCmd.Flags().StringVar(&editor, "editor", "",
"Editor program to use. If unspecified, this defaults to $VISUAL or "+
"$EDITOR in that order.")
editCmd.Flags().BoolVar(&createIfMissing, "create-if-missing", false,
"Create the secret if it doesn't exist")
editCmd.Flags().StringVar(&key, "key", "",
"KMS key to use for encryption (only used when secret doesn't exist)")
rootCmd.AddCommand(execCmd)
execCmd.Flags().BoolVar(&execLocal, "local", false, "")
if err := execCmd.Flags().MarkDeprecated("local", "there is no replacement"); err != nil {
panic(err)
}
rootCmd.AddCommand(grantCmd)
grantCmd.Flags().StringSliceVar(&members, "member", nil,
"Member to add")
rootCmd.AddCommand(listCmd)
listCmd.Flags().BoolVar(&listGenerations, "all-generations", false,
"List all versions of secrets")
listCmd.Flags().StringVar(&listPrefix, "prefix", "",
"List secrets that match prefix")
rootCmd.AddCommand(migrateCmd)
migrateCmd.Flags().StringVar(&projectID, "project", "",
"Google Cloud Project ID")
if err := migrateCmd.MarkFlagRequired("project"); err != nil {
panic(err)
}
rootCmd.AddCommand(revokeCmd)
revokeCmd.Flags().StringSliceVar(&members, "member", nil,
"Member to remove")
rootCmd.AddCommand(updateCmd)
updateCmd.Flags().BoolVar(&createIfMissing, "create-if-missing", false,
"Create the secret if it does not already exist")
updateCmd.Flags().StringVar(&key, "key", "",
"KMS key to use for re-encryption")
ctx, cancel := signal.NotifyContext(context.Background(),
syscall.SIGINT, syscall.SIGTERM)
defer cancel()
if err := rootCmd.ExecuteContext(ctx); err != nil {
cancel()
code := 1
if terr, ok := err.(*exitError); ok {
code = terr.code
}
fmt.Fprintf(stderr, "%s\n", err)
os.Exit(code)
}
}