package validate import ( "context" "fmt" "edge-infra.dev/pkg/f8n/warehouse/packagelock" "edge-infra.dev/pkg/lib/cli/sink" ) func New() *sink.Command { cmd := &sink.Command{ Use: "validate [flags] ", Short: "Validate a packagelock file structure and required fields", Exec: func(_ context.Context, r sink.Run) error { switch len(r.Args()) { case 0: return fmt.Errorf("error: a lockfile path must be passed") case 1: default: return fmt.Errorf("error: only one lockfile may be passed") } plr, err := packagelock.NewRules() if err != nil { return err } _, err = plr.ParsePackageLock(r.Args()[0]) if err != nil { return fmt.Errorf("invalid lockfile: %w", err) } r.Log.Info(fmt.Sprintf("valid lockfile: %s", r.Args()[0])) return nil }, } return cmd }