cmd/alzlibtool/command/check/library.go (52 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package check import ( "os" "github.com/Azure/alzlib" "github.com/Azure/alzlib/internal/tools/checker" "github.com/Azure/alzlib/internal/tools/checks" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armpolicy" "github.com/spf13/cobra" ) // libraryCmd represents the library check command. var libraryCmd = cobra.Command{ Use: "library [flags] dir", Short: "Perform operations on an alzlib library member.", Long: `Primarily used a a tool to check the validity of a library member.`, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { az := alzlib.NewAlzLib(nil) creds, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { cmd.PrintErrf("%s could not get Azure credential: %v\n", cmd.ErrPrefix(), err) os.Exit(1) } cf, err := armpolicy.NewClientFactory("", creds, nil) if err != nil { cmd.PrintErrf("%s could not create Azure policy client factory: %v\n", cmd.ErrPrefix(), err) os.Exit(1) } az.AddPolicyClient(cf) thisRef := alzlib.NewCustomLibraryReference(args[0]) libs, err := thisRef.FetchWithDependencies(cmd.Context()) if err != nil { cmd.PrintErrf("%s could not fetch all libraries with dependencies: %v\n", cmd.ErrPrefix(), err) os.Exit(1) } err = az.Init(cmd.Context(), libs...) if err != nil { cmd.PrintErrf("%s library init error: %v\n", cmd.ErrPrefix(), err) os.Exit(1) } chk := checker.NewValidator( checks.CheckAllDefinitionsAreReferenced, checks.CheckAllArchitectures, checks.CheckLibraryMemberPath, checks.CheckDefaults, ) err = chk.Validate(az) if err != nil { cmd.PrintErrf("%s library check error: %v\n", cmd.ErrPrefix(), err) os.Exit(1) } }, }