Home

Awesome

gostatus

Go Reference

gostatus is a command line tool that shows the status of Go repositories.

Installation

go install github.com/shurcooL/gostatus@latest

Usage

Usage: gostatus [flags] [packages]
       [newline separated packages] | gostatus -stdin [flags]
  -c	Compact output with inline notation.
  -debug
    	Cause the repository data to be printed in verbose debug format.
  -f	Force not to verify that each package has been checked out from the source control repository implied by its import path. This can be useful if the source is a local fork of the original.
  -stdin
    	Read the list of newline separated Go packages from stdin.
  -v	Verbose mode. Show all Go packages, not just ones with notable status.

Examples:
  # Show status of all packages.
  gostatus all

  # Show status of package in current directory.
  gostatus

  # Show status of all dependencies (recursive) of package in current dir.
  go list -deps | gostatus -stdin -v

Legend:
  ? - Not under version control or unreachable remote
  b - Non-default branch checked out
  * - Uncommited changes in working dir
  + - Update available
  - - Local revision is ahead of remote revision
  ± - Update available; local revision is ahead of remote revision
  ! - No remote
  / - Remote repository not found (was it deleted? made private?)
  # - Remote path doesn't match import path
  $ - Stash exists

Examples

# Show status of all packages.
$ gostatus all

# Show status of package in current directory.
$ gostatus

# Show status of specified package.
$ gostatus import/path

# Show status of all dependencies (recursive) of package in current dir.
$ go list -deps | gostatus -stdin -v

# Show status of all dependencies (recursive) of specified package.
$ go list -deps import/path | gostatus -stdin -v

Sample Output

$ gostatus all
  +  github.com/dchest/uniuri/...
	+ Update available
  +  github.com/syndtr/goleveldb/...
	+ Update available
b    github.com/shurcooL/go-goon/...
	b Non-default branch checked out
 *   github.com/shurcooL/Conception-go/...
	* Uncommited changes in working dir
  #  github.com/russross/blackfriday/...
	# Remote path doesn't match import path
   $ github.com/microcosm-cc/bluemonday/...
	$ Stash exists
  /  github.com/go-forks/go-pkg-xmlx/...
	/ Remote repository not found (was it deleted? made private?):
		remote repository not found:
		exit status 128: remote: Repository not found.
		fatal: repository 'https://github.com/go-forks/go-pkg-xmlx/' not found

There are a few observations that can be made from that sample output.

Directories

PathSynopsis
statusPackage status provides a func to check if two repo URLs are equal in the context of Go packages.

License