## Summary Move the publisher CLI from `tools/publisher/` to `cmd/publisher/` as it's a proper application rather than a development utility. This addresses feedback from @rdimitrov in PR #324 that the publisher CLI should be under `cmd/` since it's not really a tool in the same sense as other helpers in the `tools/` folder. ## Changes - Moved `tools/publisher/` directory to `cmd/publisher/` - Updated Makefile build and clean targets - Updated README.md documentation links - Updated VS Code launch configuration - Updated integration test script - Updated FAQ documentation - Fixed Go import paths in publisher code --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com>
43 lines
No EOL
940 B
Go
43 lines
No EOL
940 B
Go
package commands
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
func LogoutCommand() error {
|
|
homeDir, err := os.UserHomeDir()
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get home directory: %w", err)
|
|
}
|
|
|
|
tokenPath := filepath.Join(homeDir, TokenFileName)
|
|
|
|
// Check if token file exists
|
|
if _, err := os.Stat(tokenPath); os.IsNotExist(err) {
|
|
_, _ = fmt.Fprintln(os.Stdout, "Not logged in")
|
|
return nil
|
|
}
|
|
|
|
// Remove token file
|
|
if err := os.Remove(tokenPath); err != nil {
|
|
return fmt.Errorf("failed to remove token: %w", err)
|
|
}
|
|
|
|
// Also clean up legacy token files if they exist
|
|
legacyFiles := []string{
|
|
".mcpregistry_github_token",
|
|
".mcpregistry_registry_token",
|
|
}
|
|
|
|
for _, file := range legacyFiles {
|
|
path := filepath.Join(homeDir, file)
|
|
if _, err := os.Stat(path); err == nil {
|
|
os.Remove(path) // Ignore errors for legacy files
|
|
}
|
|
}
|
|
|
|
_, _ = fmt.Fprintln(os.Stdout, "✓ Successfully logged out")
|
|
return nil
|
|
} |