Skip to content

Commit b122d59

Browse files
committed
Add flags for publish subcommand
1 parent d9c2e50 commit b122d59

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

cmd/publisher/commands/publish.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"context"
66
"encoding/json"
77
"errors"
8+
"flag"
89
"fmt"
910
"io"
1011
"net/http"
@@ -17,14 +18,21 @@ import (
1718
)
1819

1920
func PublishCommand(args []string) error {
21+
publishFlags := flag.NewFlagSet("publish", flag.ExitOnError)
22+
serverFile := publishFlags.String("file", "server.json", "Path to server.json (default: ./server.json)")
23+
registryURLFlag := publishFlags.String("registry", "", "Registry URL override")
24+
dryRun := publishFlags.Bool("dry-run", false, "Validate without publishing")
25+
if err := publishFlags.Parse(args); err != nil {
26+
return fmt.Errorf("failed to parse flags: %w", err)
27+
}
28+
2029
// Check for server.json file
21-
serverFile := "server.json"
2230
if len(args) > 0 && !strings.HasPrefix(args[0], "-") {
23-
serverFile = args[0]
31+
serverFile = &args[0]
2432
}
2533

2634
// Read server.json
27-
serverData, err := os.ReadFile(serverFile)
35+
serverData, err := os.ReadFile(*serverFile)
2836
if err != nil {
2937
if os.IsNotExist(err) {
3038
return fmt.Errorf("server.json not found. Run 'mcp-publisher init' to create one")
@@ -71,10 +79,17 @@ Migrate to the current schema format for new servers.
7179

7280
token := tokenInfo["token"]
7381
registryURL := tokenInfo["registry"]
82+
if *registryURLFlag != "" {
83+
registryURL = *registryURLFlag
84+
}
7485
if registryURL == "" {
7586
registryURL = DefaultRegistryURL
7687
}
7788

89+
if *dryRun {
90+
return nil
91+
}
92+
7893
// Publish to registry
7994
_, _ = fmt.Fprintf(os.Stdout, "Publishing to %s...\n", registryURL)
8095
response, err := publishToRegistry(registryURL, serverData, token)

0 commit comments

Comments
 (0)