# README
Commands
This directory contains all the commands that can be run from the CLI. The child folders are:
Command Folders
- agent - Commands that are executed in the agent menu
- all -Commands that are available in all menus
- listeners - Commands that are executed in the listeners menu
- mainMenu - Commands that are executed in the main menu only. Could not use
main
because it is a reserved word - module - Commands that are executed in the modules menu
- multi - Commands that are available in multiple menus, but not all menus.
Template
The template file provides an example command that can be used as a starting point for new commands.
Rules
- A Command's description should be one sentence
- A Command's usage should follow these rules:
- https://developers.google.com/style/code-syntax#command-line-flags
- Use camel case for arguments
agentID
args
filePath
- arguments should be in lowercase
- The Command should do as much client side validation as possible before making the API call to the server
- Hyperlinks should be at the end of the Notes section under a "References" heading
- Commands "Do" functions should only return UserMessages
- Set the Error field to true when there was an API or parsing error
- Set the Level field to Info when not enough arguments were provided and when returning the usage
# Packages
Package agent contains commands that are only available in the CLI agents menu.
Package all contains commands that are available in all CLI menus.
Package listeners contains commands that are only available in the CLI listeners menu and submenus.
Package mainMenu contains commands that are only available in the CLI's main menu.
Package module contains commands that are only available in the CLI modules menu NOTE: some commands used in the module menu are also used in other menus and can be found in the pkg/cli/commands/multi directory.
Package multi contains commands that are available in multiple CLI menus, but not all menus.
Package repository implements an in-memory database that holds a map of Command structures used with the Merlin CLI.
No description provided by the author
# Interfaces
No description provided by the author
Repository is an interface used to add or get, or update CLI commands from a repository.