A simple cli tool to manage your go.work
file.
-
method 1: Use the
go
commandgo install github.com/das6ng/workman@latest
. -
method 2: Go to the release page.
just run workman
in any module inside a go.work
defined workspace, and you'll see the command line UI interactives.
BTW, the command itself already support json output and arg-based operations. Run
workman -h
to see the usage.
Usage of workman:
-l list go.work info
-n no command line ui
-u string
update go.work (default "{}")
There is a
dashengyeah.vscode-go-work-manager
plugin, enjoy it! π
- Our workspace
Folder tree:
~/work/
βββ go.work
βββ mod1/
βΒ Β βββ go.mod
βββ mod2/
βΒ Β βββ go.mod
βββ mod3/
βΒ Β βββ go.mod
βββ mod4/
βΒ Β βββ go.mod
βββ mod5/
βΒ Β βββ go.mod
βββ mod6/
βββ go.mod
Our go.work
file:
go 1.18
use (
mod1
mod2
mod3
)
- Let's try
$ workman
.
Output:
Workspace: ~/work/go.work go1.18
Module usage:
β mod1
β mod2
β mod3
Β· mod4
Β· mod5
Β· mod6
change: <Tab> | exit: <Esc>/<q>
It displays the go.work
file path and the go
version in it.
- It's interactive. press
<Tab>
key to change the modules we are using.
Output:
Modules:
> [β] mod1
[β] mod2
[β] mod3
[β] mod4
[β] mod5
[β] mod6
enter: select | tab: confirm | left: none | right: all | type to filter
Follow the instructions to turn OFF mod1
mod3
, and turn ON mod6
.
Modules:
[β] mod1
[β] mod2
[β] mod3
[β] mod4
[β] mod5
> [β] mod6
enter: select | tab: confirm | left: none | right: all | type to filter
Press <Tab>
to confirm. Then it backs to display the current go.work
status.
Workspace: /home/dash/work/go.work go1.18
Module usage:
β mod2
β mod6
Β· mod1
Β· mod3
Β· mod4
Β· mod5
change: <Tab> | exit: <Esc>/<q>
Press <Esc>
to quit the tool. And cat go.work
to see its content.
go 1.18
use (
mod2
mod6
)
That's it.