meshplayctl/

directory
v0.0.0-...-9e9d5e8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0

README

meshplayctl

meshplayctl is the CLI client for Meshplay.

Contributing

Please refer the Meshplay Contributing Guidelines for setting up your development environment.

Refer the meshplayctl- Command Reference and Tracker for current status of meshplayctl.

For a quick introduction to meshplayctl, checkout Beginner's guide to contributing to Meshplay and meshplayctl.

Building and running meshplayctl

The /meshplayctl folder contains the complete code for meshplayctl.

meshplayctl is written in Golang or the Go Programming Language. For development use Go version 1.15+.

After making changes, run make in the meshplayctl folder to build the binary. You can then use the binary by, say, ./meshplayctl system start.

Refer the Meshplay CLI Commands and Documentation for a complete reference of meshplayctl.

meshplayctl command reference

Detailed documentation of the meshplayctl commands is available in the Meshplay Docs.

General guidelines and resources

meshplayctl might be the interface that the users first have with Meshplay. As such, meshplayctl needs to provide a great UX.

The following principles should be taken in mind while designing meshplayctl commands-

  1. Provide user experiences that are familiar.
  2. Make the commands and their behavior intuitive.
  3. Avoid long commands with chained series of flags.
  4. Design with automated testing in mind, e.g. provide possibility to specify output format as json (-o json) for easy inspection of command response.

Part of delivering a great user experience is providing intuitive interfaces. In the case of meshplayctl, we should take inspiration from and deliver similar user experiences as popular CLIs do in this ecosystem, like kubectl and docker. Here is relevant kubectl information to reference - Kubectl SIG CLI Community Meeting Minutes, contributing to kubectl, code.

meshplayctl uses the Cobra framework. A good first-step towards contributing to meshplayctl would be to familiarise yourself with the Cobra concepts.

For manipulating config files, meshplayctl uses Viper.

A central struct is maintained in the meshplayctl/internal/cli/root/config/config.go file. These are updated and should be used for getting the Meshplay configuration.

For logs, meshplayctl uses Logrus. Going through the docs and understanding the different log-levels will help a lot.

meshplayctl uses golangci-lint. Refer it for lint checks.

All contributors are invited to review pull requests on meshplayctl as on other Khulnasoft projects.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL