pkg/cmd/serviceaccount/root.go (29 lines of code) (raw):
package serviceaccount
import (
"github.com/spf13/cobra"
"github.com/Azure/azure-workload-identity/pkg/cmd/serviceaccount/auth"
)
// NewServiceAccountCmd returns a new serviceaccount command
func NewServiceAccountCmd() *cobra.Command {
authProvider := auth.NewProvider()
serviceAccountCmd := &cobra.Command{
Use: "serviceaccount",
Short: "Manage the workload identity",
Long: "Manage the workload identity",
Aliases: []string{"sa"},
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
// run root command pre-run to register the debug flag
if cmd.Root() != nil && cmd.Root().PersistentPreRunE != nil {
if err := cmd.Root().PersistentPreRunE(cmd.Root(), args); err != nil {
return err
}
}
return authProvider.Validate()
},
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Usage()
},
}
// auth flags should be available for all subcommands
authProvider.AddFlags(serviceAccountCmd.PersistentFlags())
serviceAccountCmd.AddCommand(newCreateCmd(authProvider))
serviceAccountCmd.AddCommand(newDeleteCmd(authProvider))
return serviceAccountCmd
}