brev-cli

command module
v0.6.43 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2022 License: MIT Imports: 2 Imported by: 0

README

Brev.dev

Brev.dev connects your local computer to a cloud mesh so you can code locally on remote machines, without needing any new tools, and never in a browser.

Install

if brew is not already installed on your computer install it with

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

then add Brev's tap and install brev with

brew install brevdev/homebrew-brev/brev

Usage

create a workspace in your current org

brev start https://github.com/brevdev/brev-cli

list all workspaces in an org

brev ls

stop a workspace

brev stop brevdev/brev-cli

delete a workspace from an org

brev delete brevdev/brev-cli

Completion

zsh
mkdir -p ~/.zsh/completions && brev completion zsh > ~/.zsh/completions/_brev && echo fpath=~/.zsh/completions $fpath >> ~/.zshrc && fpath=(~/.zsh/completions $fpath) && autoload -U compinit && compinit
bash
sudo mkdir -p /usr/local/share/bash-completion/completions
brev completion bash | sudo tee /usr/local/share/bash-completion/completions/brev
source /usr/local/share/bash-completion/completions/brev
fish
mkdir -p ~/.config/fish/completions && brev completion fish > ~/.config/fish/completions/brev.fish && autoload -U compinit && compinit

Development

Build

make build runs a full release build make fast-build builds a binary for your current machine only

example .env file

VERSION=unknown
BREV_API_URL=http://localhost:8080
# BREV_API_URL=https://ade5dtvtaa.execute-api.us-east-1.amazonaws.com

adding new commands

https://github.com/spf13/cobra/blob/master/user_guide.md

pkg/cmd/logout/logout.go is a minimal command to go off of for adding new commands.

commands for the cli should follow <VERB> <NOUN> pattern.

Don't forget to add a debug command to .vscode/launch.json

Terminal
  • make - execute the build pipeline.
  • make help - print help for the Make targets.
Visual Studio Code

F1Tasks: Run Build Task (Ctrl+Shift+B or ⇧⌘B) to execute the build pipeline.

Release

The release workflow is triggered each time a tag with v prefix is pushed.

CAUTION: Make sure to understand the consequences before you bump the major version. More info: Go Wiki, Go Blog.

get the latest tag git

git describe --tags --abbrev=0

when releasing make sure to

  1. run full-smoke-test before cutting release to run through some common commands and make sure that they work

  2. release new version of workspace-images

  3. update brev's homebrew tap

Maintainance

Remember to update Go version in .github/workflows, Makefile and devcontainer.json.

Notable files:

Contributing

Simply create an issue or a pull request.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg
cmd
Package cmd is the entrypoint to cli
Package cmd is the entrypoint to cli
cmd/healthcheck
Package healthcheck checks the health of the backend
Package healthcheck checks the health of the backend
cmd/invite
Package invite is for inviting
Package invite is for inviting
cmd/login
Package login is for the get command
Package login is for the get command
cmd/logout
Package logout is for the logout command
Package logout is for the logout command
cmd/ls
Package ls lists workspaces in the current org
Package ls lists workspaces in the current org
cmd/refresh
Package refresh lists workspaces in the current org
Package refresh lists workspaces in the current org
cmd/secret
Package secret lets you add secrests.
Package secret lets you add secrests.
cmd/set
Package set is for the set command
Package set is for the set command
cmd/sshkeys
Package sshkeys gets your public ssh key to add to github/gitlab
Package sshkeys gets your public ssh key to add to github/gitlab
cmd/start
Package start is for starting Brev workspaces
Package start is for starting Brev workspaces
cmd/stop
Package stop is for stopping Brev workspaces
Package stop is for stopping Brev workspaces
k8s
ssh
Package ssh exists to provide an api to configure and read from an ssh file brev ssh host file entry format: Host <workspace-dns-name> Hostname 0.0.0.0 IdentityFile /home//.brev/brev.pem User brev Port <some-available-port> also think that file stuff should probably live in files package TODO migrate to using dns name for hostname
Package ssh exists to provide an api to configure and read from an ssh file brev ssh host file entry format: Host <workspace-dns-name> Hostname 0.0.0.0 IdentityFile /home//.brev/brev.pem User brev Port <some-available-port> also think that file stuff should probably live in files package TODO migrate to using dns name for hostname
terminal
Package terminal is for terminal outputting
Package terminal is for terminal outputting
uri
Package uri defines a simple uri type
Package uri defines a simple uri type
vpn

Jump to

Keyboard shortcuts

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