mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-15 17:11:30 +00:00
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/mulgadc/spinifex/internal/awsmodel"
|
|
"github.com/mulgadc/spinifex/spinifex/gateway"
|
|
)
|
|
|
|
func main() {
|
|
dispatch := gateway.AWSOperationInventory()
|
|
coverages := make([]awsmodel.OperationCoverage, 0, len(awsmodel.Services()))
|
|
for _, service := range awsmodel.Services() {
|
|
inventory, ok := dispatch[string(service)]
|
|
var modelInventory awsmodel.DispatchInventory
|
|
switch {
|
|
case ok:
|
|
modelInventory = awsmodel.DispatchInventory{
|
|
Registered: inventory.Registered,
|
|
Stubbed: inventory.Stubbed,
|
|
Unsupported: inventory.Unsupported,
|
|
}
|
|
case service == awsmodel.S3:
|
|
modelInventory = awsmodel.DispatchInventory{
|
|
Opaque: true,
|
|
Note: "Spinifex delegates the S3 REST surface to Predastore, which has no operation-name dispatch table to compare mechanically.",
|
|
}
|
|
default:
|
|
fmt.Fprintf(os.Stderr, "aws-model-coverage: no gateway inventory for %s\n", service)
|
|
os.Exit(1)
|
|
}
|
|
|
|
coverage, err := awsmodel.CompareOperations(service, modelInventory)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "aws-model-coverage: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
coverages = append(coverages, coverage)
|
|
}
|
|
|
|
fmt.Print(awsmodel.RenderCoverageMarkdown(coverages))
|
|
}
|