cli

package
v0.55.0 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2024 License: AGPL-3.0 Imports: 83 Imported by: 0

README

[EXPERIMENTAL] Viam Command Line Interface

This is an experimental feature, so things may change without notice. All feedback on the cli is greatly appreciated.

Getting Started

Enter viam login and follow instructions to authenticate.

Installation

With brew (macOS & linux amd64):

brew tap viamrobotics/brews
brew install viam

As a binary (linux amd64):

sudo curl -o /usr/local/bin/viam https://storage.googleapis.com/packages.viam.com/apps/viam-cli/viam-cli-stable-linux-amd64
sudo chmod a+rx /usr/local/bin/viam

As a binary (linux arm64):

sudo curl -o /usr/local/bin/viam https://storage.googleapis.com/packages.viam.com/apps/viam-cli/viam-cli-stable-linux-arm64
sudo chmod a+rx /usr/local/bin/viam

From source (you must install go first):

go install go.viam.com/rdk/cli/viam@latest
# add go binaries to your path (if you haven't already)
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc

Development

Building (you must install go first):

go build -o ~/go/bin/viam cli/viam/main.go

Documentation

Overview

Package cli contains all business logic needed by the CLI command.

Index

Constants

View Source
const (
	ModelTypeUnspecified               = ModelType("unspecified")
	ModelTypeSingleLabelClassification = ModelType("single_label_classification")
	ModelTypeMultiLabelClassification  = ModelType("multi_label_classification")
	ModelTypeObjectDetection           = ModelType("object_detection")
)

ModelType enumeration.

View Source
const (
	ModelFrameworkUnspecified = ModelFramework("unspecified")
	ModelFrameworkTFLite      = ModelFramework("tflite")
	ModelFrameworkTensorFlow  = ModelFramework("tensorflow")
	ModelFrameworkPyTorch     = ModelFramework("pytorch")
	ModelFrameworkONNX        = ModelFramework("onnx")
)

ModelFramework enumeration.

View Source
const (
	PackageTypeUnspecified = PackageType("unspecified")
	PackageTypeArchive     = PackageType("archive")
	PackageTypeMLModel     = PackageType("ml_model")
	PackageTypeModule      = PackageType("module")
	PackageTypeSLAMMap     = PackageType("slam_map")
	PackageTypeMLTraining  = PackageType("ml_training")
)

PackageType enumeration.

Variables

This section is empty.

Functions

func CheckUpdateAction added in v0.22.0

func CheckUpdateAction(c *cli.Context, args emptyArgs) error

CheckUpdateAction is the corresponding Action for 'check-update'.

func CreateModuleAction added in v0.7.3

func CreateModuleAction(c *cli.Context, args createModuleActionArgs) error

CreateModuleAction is the corresponding Action for 'module create'. It runs the command to create a module. This includes both a gRPC call to register the module on app.viam.com and creating the manifest file.

func DataAddToDatasetByFilter added in v0.16.0

func DataAddToDatasetByFilter(c *cli.Context, args dataAddToDatasetByFilterArgs) error

DataAddToDatasetByFilter is the corresponding action for 'data dataset add filter'.

func DataAddToDatasetByIDs added in v0.16.0

func DataAddToDatasetByIDs(c *cli.Context, args dataAddToDatasetByIDsArgs) error

DataAddToDatasetByIDs is the corresponding action for 'data dataset add ids'.

func DataCancelTrainingJob added in v0.11.0

func DataCancelTrainingJob(c *cli.Context, args dataCancelTrainingJobArgs) error

DataCancelTrainingJob is the corresponding action for 'data train cancel'.

func DataConfigureDatabaseUser added in v0.13.0

func DataConfigureDatabaseUser(c *cli.Context, args dataConfigureDatabaseUserArgs) error

DataConfigureDatabaseUser is the corresponding action for 'data database configure'.

func DataConfigureDatabaseUserConfirmation added in v0.39.0

func DataConfigureDatabaseUserConfirmation(c *cli.Context, args dataConfigureDatabaseUserArgs) error

DataConfigureDatabaseUserConfirmation is the Before action for 'data database configure'. it asks for the user to confirm that they are aware that they are changing the authentication credentials of their database.

func DataDeleteBinaryAction added in v0.8.0

func DataDeleteBinaryAction(c *cli.Context, args emptyArgs) error

DataDeleteBinaryAction is the corresponding action for 'data delete'.

func DataDeleteTabularAction added in v0.8.0

func DataDeleteTabularAction(c *cli.Context, args dataDeleteTabularArgs) error

DataDeleteTabularAction is the corresponding action for 'data delete-tabular'.

func DataExportAction added in v0.7.3

func DataExportAction(c *cli.Context, args dataExportArgs) error

DataExportAction is the corresponding action for 'data export'.

func DataGetDatabaseConnection added in v0.13.0

func DataGetDatabaseConnection(c *cli.Context, args dataGetDatabaseConnectionArgs) error

DataGetDatabaseConnection is the corresponding action for 'data database hostname'.

func DataGetTrainingJob added in v0.11.0

func DataGetTrainingJob(c *cli.Context, args dataGetTrainingJobArgs) error

DataGetTrainingJob is the corresponding action for 'data train get'.

func DataListTrainingJobs added in v0.11.0

func DataListTrainingJobs(c *cli.Context, args dataListTrainingJobsArgs) error

DataListTrainingJobs is the corresponding action for 'data train list'.

func DataRemoveFromDataset added in v0.10.0

func DataRemoveFromDataset(c *cli.Context, args dataRemoveFromDatasetArgs) error

DataRemoveFromDataset is the corresponding action for 'data dataset remove'.

func DataTagActionByFilter added in v0.24.0

func DataTagActionByFilter(c *cli.Context, args dataTagByFilterArgs) error

DataTagActionByFilter is the corresponding action for 'data tag filter'.

func DataTagActionByIds added in v0.24.0

func DataTagActionByIds(c *cli.Context, args dataTagByIDsArgs) error

DataTagActionByIds is the corresponding action for 'data tag'.

func DatasetCreateAction added in v0.10.0

func DatasetCreateAction(c *cli.Context, args datasetCreateArgs) error

DatasetCreateAction is the corresponding action for 'dataset create'.

func DatasetDeleteAction added in v0.10.0

func DatasetDeleteAction(c *cli.Context, args datasetDeleteArgs) error

DatasetDeleteAction is the corresponding action for 'dataset delete'.

func DatasetDownloadAction added in v0.33.0

func DatasetDownloadAction(c *cli.Context, args datasetDownloadArgs) error

DatasetDownloadAction is the corresponding action for 'dataset download'.

func DatasetListAction added in v0.10.0

func DatasetListAction(c *cli.Context, args datasetListArgs) error

DatasetListAction is the corresponding action for 'dataset list'.

func DatasetRenameAction added in v0.10.0

func DatasetRenameAction(c *cli.Context, args datasetRenameArgs) error

DatasetRenameAction is the corresponding action for 'dataset rename'.

func DownloadModuleAction added in v0.42.0

func DownloadModuleAction(c *cli.Context, flags downloadModuleFlags) error

DownloadModuleAction downloads a module.

func Errorf added in v0.7.3

func Errorf(w io.Writer, format string, a ...interface{})

Errorf prints a message prefixed with a bold red "Error: " prefix and exits with 1. It also capitalizes the first letter of the message.

func GenerateModuleAction added in v0.47.0

func GenerateModuleAction(cCtx *cli.Context, args generateModuleArgs) error

GenerateModuleAction runs the module generate cli and generates necessary module templates based on user input.

func GetAuthApplicationAction added in v0.29.0

func GetAuthApplicationAction(c *cli.Context, args getAuthApplicationArgs) error

GetAuthApplicationAction is the corresponding action for 'auth-app get'.

func GetBillingConfigAction added in v0.54.0

func GetBillingConfigAction(cCtx *cli.Context, args getBillingConfigArgs) error

GetBillingConfigAction corresponds to `organizations billing get`.

func ListLocationsAction added in v0.7.3

func ListLocationsAction(c *cli.Context, args emptyArgs) error

ListLocationsAction is the corresponding Action for 'locations list'.

func ListOrganizationsAction added in v0.7.3

func ListOrganizationsAction(cCtx *cli.Context, args emptyArgs) error

ListOrganizationsAction is the corresponding Action for 'organizations list'.

func ListRobotsAction added in v0.7.3

func ListRobotsAction(c *cli.Context, args listRobotsActionArgs) error

ListRobotsAction is the corresponding Action for 'machines list'.

func LocationAPIKeyCreateAction added in v0.11.0

func LocationAPIKeyCreateAction(cCtx *cli.Context, args locationAPIKeyCreateArgs) error

LocationAPIKeyCreateAction corresponds to `location api-key create`.

func LoginAction added in v0.7.3

func LoginAction(cCtx *cli.Context, args loginActionArgs) error

LoginAction is the corresponding Action for 'login'.

func LoginWithAPIKeyAction added in v0.9.0

func LoginWithAPIKeyAction(cCtx *cli.Context, args loginWithAPIKeyArgs) error

LoginWithAPIKeyAction is the corresponding Action for `login api-key`.

func LogoutAction added in v0.7.3

func LogoutAction(cCtx *cli.Context, args emptyArgs) error

LogoutAction is the corresponding Action for 'logout'.

func MLGetTrainingJobLogs added in v0.40.0

func MLGetTrainingJobLogs(c *cli.Context, args mlGetTrainingJobLogsArgs) error

MLGetTrainingJobLogs is the corresponding action for 'data train logs'.

func MLSubmitCustomTrainingJob added in v0.27.0

func MLSubmitCustomTrainingJob(c *cli.Context, args mlSubmitCustomTrainingJobArgs) error

MLSubmitCustomTrainingJob is the corresponding action for 'train submit-custom'.

func MLSubmitCustomTrainingJobWithUpload added in v0.28.0

func MLSubmitCustomTrainingJobWithUpload(c *cli.Context, args mlSubmitCustomTrainingJobWithUploadArgs) error

MLSubmitCustomTrainingJobWithUpload is the corresponding action for 'train submit-custom'.

func MLSubmitTrainingJob added in v0.27.0

func MLSubmitTrainingJob(c *cli.Context, args mlSubmitTrainingJobArgs) error

MLSubmitTrainingJob is the corresponding action for 'train submit'.

func MLTrainingUpdateAction added in v0.29.0

func MLTrainingUpdateAction(c *cli.Context, args mlTrainingUpdateArgs) error

MLTrainingUpdateAction updates the visibility of training scripts.

func MLTrainingUploadAction added in v0.26.0

func MLTrainingUploadAction(c *cli.Context, args mlTrainingUploadArgs) error

MLTrainingUploadAction uploads a new custom training script.

func MachinesPartCopyFilesAction added in v0.27.0

func MachinesPartCopyFilesAction(c *cli.Context, args machinesPartCopyFilesArgs) error

MachinesPartCopyFilesAction is the corresponding Action for 'machines part cp'.

func ModuleBuildLinkRepoAction added in v0.40.0

func ModuleBuildLinkRepoAction(c *cli.Context, args moduleBuildLinkRepoArgs) error

ModuleBuildLinkRepoAction links a github repo to your module.

func ModuleBuildListAction added in v0.17.0

func ModuleBuildListAction(cCtx *cli.Context, args moduleBuildListArgs) error

ModuleBuildListAction lists the module's build jobs.

func ModuleBuildLocalAction added in v0.15.0

func ModuleBuildLocalAction(cCtx *cli.Context, args moduleBuildLocalArgs) error

ModuleBuildLocalAction runs the module's build commands locally.

func ModuleBuildLogsAction added in v0.17.0

func ModuleBuildLogsAction(c *cli.Context, args moduleBuildLogsArgs) error

ModuleBuildLogsAction retrieves the logs for a specific build step.

func ModuleBuildStartAction added in v0.17.0

func ModuleBuildStartAction(cCtx *cli.Context, args moduleBuildStartArgs) error

ModuleBuildStartAction starts a cloud build.

func NewApp added in v0.7.3

func NewApp(out, errOut io.Writer) *cli.App

NewApp returns a new app with the CLI API, Writer set to out, and ErrWriter set to errOut.

func OrganizationDisableBillingServiceAction added in v0.55.0

func OrganizationDisableBillingServiceAction(cCtx *cli.Context, args organizationDisableBillingServiceArgs) error

OrganizationDisableBillingServiceAction corresponds to `organizations billing disable`.

func OrganizationLogoSetAction added in v0.55.0

func OrganizationLogoSetAction(cCtx *cli.Context, args organizationsLogoSetArgs) error

OrganizationLogoSetAction corresponds to `organizations logo set`.

func OrganizationsAPIKeyCreateAction added in v0.9.0

func OrganizationsAPIKeyCreateAction(cCtx *cli.Context, args organizationsAPIKeyCreateArgs) error

OrganizationsAPIKeyCreateAction corresponds to `organizations api-key create`.

func OrganizationsLogoGetAction added in v0.55.0

func OrganizationsLogoGetAction(cCtx *cli.Context, args organizationsLogoGetArgs) error

OrganizationsLogoGetAction corresponds to `organizations logo get`.

func OrganizationsSupportEmailGetAction added in v0.54.0

func OrganizationsSupportEmailGetAction(cCtx *cli.Context, args organizationsSupportEmailGetArgs) error

OrganizationsSupportEmailGetAction corresponds to `organizations support-email get`.

func OrganizationsSupportEmailSetAction added in v0.54.0

func OrganizationsSupportEmailSetAction(cCtx *cli.Context, args organizationsSupportEmailSetArgs) error

OrganizationsSupportEmailSetAction corresponds to `organizations support-email set`.

func PackageExportAction added in v0.26.0

func PackageExportAction(c *cli.Context, args packageExportArgs) error

PackageExportAction is the corresponding action for 'package export'.

func PackageUploadAction added in v0.28.0

func PackageUploadAction(c *cli.Context, args packageUploadArgs) error

PackageUploadAction is the corresponding action for "packages upload".

func ParseFileType added in v0.37.0

func ParseFileType(raw string) string

ParseFileType parses output from the `file` command. Returns a platform string like "linux/amd64". Empty string means failed to parse.

func PrintAccessTokenAction added in v0.7.3

func PrintAccessTokenAction(cCtx *cli.Context, args emptyArgs) error

PrintAccessTokenAction is the corresponding Action for 'print-access-token'.

func RegisterAuthApplicationAction added in v0.28.0

func RegisterAuthApplicationAction(c *cli.Context, args registerAuthApplicationArgs) error

RegisterAuthApplicationAction is the corresponding action for 'auth-app register'.

func ReloadModuleAction added in v0.26.0

func ReloadModuleAction(c *cli.Context, args reloadModuleArgs) error

ReloadModuleAction builds a module, configures it on a robot, and starts or restarts it.

func RobotAPIKeyCreateAction added in v0.11.0

func RobotAPIKeyCreateAction(cCtx *cli.Context, args robotAPIKeyCreateArgs) error

RobotAPIKeyCreateAction corresponds to `machine api-key create`.

func RobotsLogsAction added in v0.9.0

func RobotsLogsAction(c *cli.Context, args robotsLogsArgs) error

RobotsLogsAction is the corresponding Action for 'machines logs'.

func RobotsPartLogsAction added in v0.9.0

func RobotsPartLogsAction(c *cli.Context, args robotsPartLogsArgs) error

RobotsPartLogsAction is the corresponding Action for 'machines part logs'.

func RobotsPartRestartAction added in v0.38.0

func RobotsPartRestartAction(c *cli.Context, args robotsPartRestartArgs) error

RobotsPartRestartAction is the corresponding Action for 'machines part restart'.

func RobotsPartRunAction added in v0.9.0

func RobotsPartRunAction(c *cli.Context, args robotsPartRunArgs) error

RobotsPartRunAction is the corresponding Action for 'machines part run'.

func RobotsPartShellAction added in v0.9.0

func RobotsPartShellAction(c *cli.Context, args robotsPartShellArgs) error

RobotsPartShellAction is the corresponding Action for 'machines part shell'.

func RobotsPartStatusAction added in v0.9.0

func RobotsPartStatusAction(c *cli.Context, args robotsPartStatusArgs) error

RobotsPartStatusAction is the corresponding Action for 'machines part status'.

func RobotsStatusAction added in v0.9.0

func RobotsStatusAction(c *cli.Context, args robotsStatusArgs) error

RobotsStatusAction is the corresponding Action for 'machines status'.

func UpdateAuthApplicationAction added in v0.28.0

func UpdateAuthApplicationAction(c *cli.Context, args updateAuthApplicationArgs) error

UpdateAuthApplicationAction is the corresponding action for 'auth-app update'.

func UpdateBillingServiceAction added in v0.55.0

func UpdateBillingServiceAction(cCtx *cli.Context, args updateBillingServiceArgs) error

UpdateBillingServiceAction corresponds to `organizations billing-service update`.

func UpdateModelsAction added in v0.12.0

func UpdateModelsAction(c *cli.Context, args updateModelsArgs) error

UpdateModelsAction figures out the models that a module supports and updates it's metadata file.

func UpdateModuleAction added in v0.7.3

func UpdateModuleAction(c *cli.Context, args updateModuleArgs) error

UpdateModuleAction is the corresponding Action for 'module update'. It runs the command to update a module. This includes updating the meta.json to include the public namespace (if set on the org).

func UploadModuleAction added in v0.7.3

func UploadModuleAction(c *cli.Context, args uploadModuleArgs) error

UploadModuleAction is the corresponding action for 'module upload'.

func VersionAction added in v0.7.3

func VersionAction(c *cli.Context, args emptyArgs) error

VersionAction is the corresponding Action for 'version'.

func WhoAmIAction added in v0.7.3

func WhoAmIAction(cCtx *cli.Context, args emptyArgs) error

WhoAmIAction is the corresponding Action for 'whoami'.

Types

type AliasStringFlag added in v0.17.0

type AliasStringFlag struct {
	cli.StringFlag
}

AliasStringFlag returns f.Name as the last member of Names(), which is useful if aliases shouldn't be exposed to the user. Otherwise it is the same as cli.StringFlag.

func (AliasStringFlag) Names added in v0.17.0

func (f AliasStringFlag) Names() []string

Names have to be overwritten to prevent required flag errors from using aliases in its message. This returns f.Name as the last member of Names(), which is what the required flag error uses in its message.

type Annotation added in v0.33.0

type Annotation struct {
	AnnotationLabel string `json:"annotation_label"`
}

Annotation holds the label associated with the image.

type BBoxAnnotation added in v0.33.0

type BBoxAnnotation struct {
	AnnotationLabel string  `json:"annotation_label"`
	XMinNormalized  float64 `json:"x_min_normalized"`
	XMaxNormalized  float64 `json:"x_max_normalized"`
	YMinNormalized  float64 `json:"y_min_normalized"`
	YMaxNormalized  float64 `json:"y_max_normalized"`
}

BBoxAnnotation holds the information associated with each bounding box.

type Config

type Config struct {
	BaseURL         string     `json:"base_url"`
	Auth            authMethod `json:"auth"`
	LastUpdateCheck string     `json:"last_update_check"`
	LatestVersion   string     `json:"latest_version"`
}

Config is the schema for saved CLI credentials.

func ConfigFromCache added in v0.29.0

func ConfigFromCache() (_ *Config, err error)

ConfigFromCache parses the cached json into a Config. Removes the config from cache on any error. TODO(RSDK-7812): maybe move shared code to common location.

func (*Config) DialOptions added in v0.29.0

func (conf *Config) DialOptions() ([]rpc.DialOption, error)

DialOptions constructs an rpc.DialOption slice from config.

type ImageMetadata added in v0.33.0

type ImageMetadata struct {
	ImagePath                 string           `json:"image_path"`
	ClassificationAnnotations []Annotation     `json:"classification_annotations"`
	BBoxAnnotations           []BBoxAnnotation `json:"bounding_box_annotations"`
}

ImageMetadata defines the format of the data in jsonlines for custom training.

type MLMetadata added in v0.26.0

type MLMetadata struct {
	Draft     bool
	ModelType string
	Framework string
	URL       string
}

MLMetadata struct stores package info for ML training packages.

type ModelFramework added in v0.26.0

type ModelFramework string

ModelFramework refers to the backend framework of the model.

type ModelType added in v0.26.0

type ModelType string

ModelType refers to the type of the model.

type ModuleComponent added in v0.5.0

type ModuleComponent struct {
	API   string `json:"api"`
	Model string `json:"model"`
}

ModuleComponent represents an api - model pair.

type ModuleMap added in v0.26.0

type ModuleMap map[string]any

ModuleMap is a type alias to indicate where a map represents a module config. We don't convert to rdkConfig.Module because it can get out of date with what's in the db. Using maps directly also saves a lot of high-maintenance ser/des work.

type PackageType added in v0.26.0

type PackageType string

PackageType refers to the type of the package.

type ServiceMap added in v0.31.0

type ServiceMap map[string]any

ServiceMap is the same kind of thing as ModuleMap (see above), a map representing a single service.

Directories

Path Synopsis
module_generate
common
Package common contains defined types used for module generation
Package common contains defined types used for module generation
scripts
Package scripts contains scripts that generate method stubs for modules
Package scripts contains scripts that generate method stubs for modules
Package main is the CLI command itself.
Package main is the CLI command itself.

Jump to

Keyboard shortcuts

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