pluginctl/README.md
Felipe Martin 71a7b0de11
Refactor codebase with improved structure and logging
- Restructured info.go with extracted helper functions for better readability
- Enhanced updateassets.go with cleaner asset processing logic and better error handling
- Improved client.go formatting and logging consistency
- Added logs.go for centralized logging functionality
- Updated dependencies in go.mod to include tint as direct dependency
- Cleaned up README.md with simplified installation instructions and structure
- Added comprehensive assets/ directory with build configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14 17:14:12 +02:00

2.9 KiB

pluginctl

A command-line interface tool for Mattermost plugin development. pluginctl provides utilities to manage, inspect, and work with Mattermost plugins from the command line.

Installation

From Source

git clone https://github.com/mattermost/pluginctl.git
cd pluginctl
make build

Binary Installation

Download the latest binary from the releases page.

Package Managers

# Using go install
go install github.com/mattermost/pluginctl/cmd/pluginctl

Usage

Basic Commands

# Display plugin information
pluginctl info

# Show help and available commands
pluginctl --help

# Show version
pluginctl version

Plugin Path Configuration

pluginctl supports multiple ways to specify the plugin directory:

  1. Command-line flag (highest priority):

    pluginctl --plugin-path /path/to/plugin info
    
  2. Environment variable:

    export PLUGINCTL_PLUGIN_PATH=/path/to/plugin
    pluginctl info
    
  3. Current directory (default):

    cd /path/to/plugin
    pluginctl info
    

Available Commands

Run pluginctl --help to see all available commands and options.

Development

Quick Start

# Set up development environment
make dev-setup

# Install dependencies
make deps

# Quick development build (format, lint, build)
make dev

# Run tests and checks before committing
make check-changes

See make help for the complete list of available targets.

Adding New Commands

  1. Create a new command file (e.g., build.go) in the root directory
  2. Implement the command following existing patterns
  3. Register the command in cmd/pluginctl/main.go
  4. Update the help text

See CLAUDE.md for detailed architecture guidelines.

Contributing

We welcome contributions to pluginctl! Please see the CLAUDE.md file for architecture guidelines and development patterns.

Code Style

  • Follow Go best practices and conventions
  • Use the official Mattermost model types from github.com/mattermost/mattermost/server/public/model
  • Maintain separation between CLI framework and command implementation
  • Include comprehensive error handling with descriptive messages

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Support

For questions, issues, or feature requests, please:

  • Check the issues or create a new issue if your problem isn't already reported
  • Join the Mattermost Community for general discussion