Skip to content

Commit 68b5573

Browse files
Copilottoby
andcommitted
Fix linting errors in publisher CLI tool
Co-authored-by: toby <[email protected]>
1 parent e10d3f2 commit 68b5573

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

tools/publisher/main.go

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,18 @@ func main() {
7777
}
7878

7979
func printUsage() {
80-
fmt.Println("MCP Registry Publisher Tool")
81-
fmt.Println()
82-
fmt.Println("Usage:")
83-
fmt.Println(" mcp-publisher publish [flags] Publish a server.json file to the registry")
84-
fmt.Println(" mcp-publisher create [flags] Create a new server.json file")
85-
fmt.Println()
86-
fmt.Println("Use 'mcp-publisher <command> --help' for more information about a command.")
80+
log.Println("MCP Registry Publisher Tool")
81+
log.Println()
82+
log.Println("Usage:")
83+
log.Println(" mcp-publisher publish [flags] Publish a server.json file to the registry")
84+
log.Println(" mcp-publisher create [flags] Create a new server.json file")
85+
log.Println()
86+
log.Println("Use 'mcp-publisher <command> --help' for more information about a command.")
8787
}
8888

8989
func publishCommand() {
9090
publishFlags := flag.NewFlagSet("publish", flag.ExitOnError)
91-
91+
9292
var registryURL string
9393
var mcpFilePath string
9494
var forceLogin bool
@@ -100,7 +100,9 @@ func publishCommand() {
100100
publishFlags.BoolVar(&forceLogin, "login", false, "force a new login even if a token exists")
101101
publishFlags.StringVar(&authMethod, "auth-method", "github-oauth", "authentication method to use (default: github-oauth)")
102102

103-
publishFlags.Parse(os.Args[2:])
103+
if err := publishFlags.Parse(os.Args[2:]); err != nil {
104+
log.Fatalf("Error parsing flags: %v", err)
105+
}
104106

105107
if registryURL == "" || mcpFilePath == "" {
106108
publishFlags.Usage()
@@ -153,22 +155,22 @@ func publishCommand() {
153155

154156
func createCommand() {
155157
createFlags := flag.NewFlagSet("create", flag.ExitOnError)
156-
158+
157159
// Basic server information flags
158160
var name string
159161
var description string
160162
var version string
161163
var repoURL string
162164
var repoSource string
163165
var output string
164-
166+
165167
// Package information flags
166168
var registryName string
167169
var packageName string
168170
var packageVersion string
169171
var runtimeHint string
170172
var execute string
171-
173+
172174
// Repeatable flags
173175
var envVars []string
174176
var packageArgs []string
@@ -183,27 +185,29 @@ func createCommand() {
183185
createFlags.StringVar(&repoSource, "repo-source", "github", "Repository source")
184186
createFlags.StringVar(&output, "output", "server.json", "Output file path")
185187
createFlags.StringVar(&output, "o", "server.json", "Output file path (shorthand)")
186-
188+
187189
createFlags.StringVar(&registryName, "registry", "npm", "Package registry name")
188190
createFlags.StringVar(&packageName, "package-name", "", "Package name (defaults to server name)")
189191
createFlags.StringVar(&packageVersion, "package-version", "", "Package version (defaults to server version)")
190192
createFlags.StringVar(&runtimeHint, "runtime-hint", "", "Runtime hint (e.g., docker)")
191193
createFlags.StringVar(&execute, "execute", "", "Command to execute the server")
192194
createFlags.StringVar(&execute, "e", "", "Command to execute the server (shorthand)")
193-
195+
194196
// Custom flag for environment variables
195197
createFlags.Func("env-var", "Environment variable in format NAME:DESCRIPTION (can be repeated)", func(value string) error {
196198
envVars = append(envVars, value)
197199
return nil
198200
})
199-
201+
200202
// Custom flag for package arguments
201203
createFlags.Func("package-arg", "Package argument in format VALUE:DESCRIPTION (can be repeated)", func(value string) error {
202204
packageArgs = append(packageArgs, value)
203205
return nil
204206
})
205207

206-
createFlags.Parse(os.Args[2:])
208+
if err := createFlags.Parse(os.Args[2:]); err != nil {
209+
log.Fatalf("Error parsing flags: %v", err)
210+
}
207211

208212
// Validate required flags
209213
if name == "" {
@@ -225,7 +229,8 @@ func createCommand() {
225229
}
226230

227231
// Create server structure
228-
server := createServerStructure(name, description, version, repoURL, repoSource, registryName, packageName, packageVersion, runtimeHint, execute, envVars, packageArgs)
232+
server := createServerStructure(name, description, version, repoURL, repoSource,
233+
registryName, packageName, packageVersion, runtimeHint, execute, envVars, packageArgs)
229234

230235
// Convert to JSON
231236
jsonData, err := json.MarshalIndent(server, "", " ")
@@ -234,7 +239,7 @@ func createCommand() {
234239
}
235240

236241
// Write to file
237-
err = os.WriteFile(output, jsonData, 0644)
242+
err = os.WriteFile(output, jsonData, 0600)
238243
if err != nil {
239244
log.Fatalf("Error writing file: %v", err)
240245
}
@@ -300,7 +305,8 @@ func publishToRegistry(registryURL string, mcpData []byte, token string) error {
300305
return nil
301306
}
302307

303-
func createServerStructure(name, description, version, repoURL, repoSource, registryName, packageName, packageVersion, runtimeHint, execute string, envVars []string, packageArgs []string) ServerJSON {
308+
func createServerStructure(name, description, version, repoURL, repoSource, registryName,
309+
packageName, packageVersion, runtimeHint, execute string, envVars []string, packageArgs []string) ServerJSON {
304310
// Parse environment variables
305311
var environmentVariables []EnvironmentVariable
306312
for _, envVar := range envVars {
@@ -328,7 +334,7 @@ func createServerStructure(name, description, version, repoURL, repoSource, regi
328334
if len(parts) == 2 {
329335
description = parts[1]
330336
}
331-
337+
332338
packageArguments = append(packageArguments, RuntimeArgument{
333339
Description: description,
334340
IsRequired: true, // Package arguments are typically required
@@ -349,15 +355,16 @@ func createServerStructure(name, description, version, repoURL, repoSource, regi
349355
// Skip the first part (command) and add each argument as a runtime argument
350356
for i, arg := range parts[1:] {
351357
description := fmt.Sprintf("Runtime argument %d", i+1)
352-
358+
353359
// Try to provide better descriptions based on common patterns
354-
if strings.HasPrefix(arg, "--") {
360+
switch {
361+
case strings.HasPrefix(arg, "--"):
355362
description = fmt.Sprintf("Command line flag: %s", arg)
356-
} else if strings.HasPrefix(arg, "-") && len(arg) == 2 {
363+
case strings.HasPrefix(arg, "-") && len(arg) == 2:
357364
description = fmt.Sprintf("Command line option: %s", arg)
358-
} else if strings.Contains(arg, "=") {
365+
case strings.Contains(arg, "="):
359366
description = fmt.Sprintf("Configuration parameter: %s", arg)
360-
} else if i > 0 && strings.HasPrefix(parts[i], "-") {
367+
case i > 0 && strings.HasPrefix(parts[i], "-"):
361368
description = fmt.Sprintf("Value for %s", parts[i])
362369
}
363370

@@ -410,13 +417,14 @@ func smartSplit(command string) []string {
410417
for _, char := range command {
411418
switch {
412419
case char == '"' || char == '\'':
413-
if !inQuotes {
420+
switch {
421+
case !inQuotes:
414422
inQuotes = true
415423
quoteChar = char
416-
} else if char == quoteChar {
424+
case char == quoteChar:
417425
inQuotes = false
418426
quoteChar = 0
419-
} else {
427+
default:
420428
current.WriteRune(char)
421429
}
422430
case char == ' ' && !inQuotes:

0 commit comments

Comments
 (0)