Add check subcommand to manifest command
- Add 'check' case to manifest command that validates plugin manifest using manifest.IsValid() - Return appropriate exit codes: 0 for valid, 1 for invalid manifests - Update help text and error messages to include the new subcommand - Log validation results using structured logging 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
873bf78c22
commit
6639dad2d6
3 changed files with 12 additions and 5 deletions
|
@ -9,7 +9,7 @@ all: check-style test dist
|
|||
## Ensures the plugin manifest is valid
|
||||
.PHONY: manifest-check
|
||||
manifest-check:
|
||||
./build/bin/manifest check
|
||||
pluginctl manifest check
|
||||
|
||||
|
||||
## Builds the server, if it exists, for all supported architectures, unless MM_SERVICESETTINGS_ENABLEDEVELOPER is set.
|
||||
|
@ -55,7 +55,7 @@ endif
|
|||
bundle:
|
||||
rm -rf dist/
|
||||
mkdir -p dist/$(PLUGIN_ID)
|
||||
./build/bin/manifest dist
|
||||
cp plugin.json dist/$(PLUGIN_ID)/plugin.json
|
||||
ifneq ($(wildcard $(ASSETS_DIR)/.),)
|
||||
cp -r $(ASSETS_DIR) dist/$(PLUGIN_ID)/
|
||||
endif
|
||||
|
|
|
@ -118,7 +118,7 @@ Commands:
|
|||
disable Disable plugin from current directory in Mattermost server
|
||||
reset Reset plugin from current directory (disable then enable)
|
||||
updateassets Update plugin files from embedded assets
|
||||
manifest Get plugin manifest information (id, version, has_server, has_webapp)
|
||||
manifest Get plugin manifest information (id, version, has_server, has_webapp, check)
|
||||
logs View plugin logs (use --watch to follow logs in real-time)
|
||||
help Show this help message
|
||||
version Show version information
|
||||
|
@ -134,6 +134,7 @@ Examples:
|
|||
pluginctl manifest version # Get plugin version
|
||||
pluginctl manifest has_server # Check if plugin has server code
|
||||
pluginctl manifest has_webapp # Check if plugin has webapp code
|
||||
pluginctl manifest check # Validate plugin manifest
|
||||
pluginctl logs # View recent plugin logs
|
||||
pluginctl logs --watch # Watch plugin logs in real-time
|
||||
export PLUGINCTL_PLUGIN_PATH=/path/to/plugin
|
||||
|
|
10
manifest.go
10
manifest.go
|
@ -8,7 +8,7 @@ import (
|
|||
// RunManifestCommand implements the 'manifest' command functionality with subcommands.
|
||||
func RunManifestCommand(args []string, pluginPath string) error {
|
||||
if len(args) == 0 {
|
||||
return fmt.Errorf("manifest command requires a subcommand: id, version, has_server, has_webapp")
|
||||
return fmt.Errorf("manifest command requires a subcommand: id, version, has_server, has_webapp, check")
|
||||
}
|
||||
|
||||
// Convert to absolute path
|
||||
|
@ -41,8 +41,14 @@ func RunManifestCommand(args []string, pluginPath string) error {
|
|||
} else {
|
||||
fmt.Println("false")
|
||||
}
|
||||
case "check":
|
||||
if err := manifest.IsValid(); err != nil {
|
||||
Logger.Error("Plugin manifest validation failed", "error", err)
|
||||
return err
|
||||
}
|
||||
Logger.Info("Plugin manifest is valid")
|
||||
default:
|
||||
return fmt.Errorf("unknown subcommand: %s. Available subcommands: id, version, has_server, has_webapp",
|
||||
return fmt.Errorf("unknown subcommand: %s. Available subcommands: id, version, has_server, has_webapp, check",
|
||||
subcommand)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue