brev-cli

command module
v0.6.8 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2022 License: MIT Imports: 2 Imported by: 0

README

brev CLI

Keep a Changelog GitHub Release Go Reference go.mod LICENSE Build Status Go Report Card Codecov

Star this repository if you find it valuable and worth maintaining.

Watch this repository to get notified about new releases, issues, etc.

Install

Linux & Mac

install brev on your computer with:

sudo sh -c "`curl -sf -L https://raw.githubusercontent.com/brevdev/brev-cli/main/bin/install-latest.sh`"  &&
export PATH=/opt/brev/bin:$PATH && brev run-tasks -d

add brev to your path:

ZSH

export PATH=/opt/brev/bin:$PATH
echo PATH=/opt/brev/bin:$PATH >> ~/.zshrc

Bash

export PATH=/opt/brev/bin:$PATH
echo PATH=/opt/brev/bin:$PATH >> ~/.bashrc

check that you have installed brev successfully by running

$ brev --version

Current version: v0.1.5

You're up to date!

Uninstall

sudo rm -rf /usr/local/bin/brev
rm -rf /tmp/brev
rm -rf ~/.brev

Usage

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

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.

get the latest tag git

git describe --tags --abbrev=0

when releasing make sure to

  1. run make smoketest before cutting release to run through some common commands and make sure that they work

  2. release new version of workspace-images

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

Maintainance

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

Notable files:

Contributing

Simply create an issue or a pull request.

Distribute to Homebrew

Step 1: bump version (see top of Makefile)

Step 2: create homebrew distribution

> make dist-homebrew

Step 3: create GitHub release

Step 4: upload resultant tar.gz to GitHub release

Step 5: copy sha256 (output from step 2) and use it in a new update to https://github.com/brevdev/homebrew-tap

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/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

Jump to

Keyboard shortcuts

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