summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--Makefile20
-rw-r--r--argv.go3
-rw-r--r--main.go5
-rw-r--r--placement.config.go16
-rw-r--r--placement.proto31
6 files changed, 70 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 6629a66..3421d23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
*.swp
-go.mod
-go.sum
+go.*
+*.pb.go
files/
diff --git a/Makefile b/Makefile
index f9f0a90..406703e 100644
--- a/Makefile
+++ b/Makefile
@@ -3,21 +3,21 @@
VERSION = $(shell git describe --tags)
BUILDTIME = $(shell date +%Y.%m.%d)
-default: install
+default: placement.pb.go install
build:
GO111MODULE=off go build \
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
./startxplacement
-verbose:
- GO111MODULE=off go install -v -x \
- -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
-
install: goimports
GO111MODULE=off go install \
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
+install-verbose: goimports vet
+ GO111MODULE=off go install -v -x \
+ -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
+
# makes a .deb package
debian:
rm -f ~/incoming/virtigo*deb
@@ -35,4 +35,12 @@ redomod:
clean:
rm -f go.*
- rm -f virtigo*
+ rm -f *.pb.go
+ rm -f startxplacement*
+
+vet:
+ GO111MODULE=off go vet
+ @echo 'go vet' worked for this application
+
+placement.pb.go: placement.proto
+ autogenpb --proto placement.proto
diff --git a/argv.go b/argv.go
index 4da88d5..50936c0 100644
--- a/argv.go
+++ b/argv.go
@@ -19,6 +19,7 @@ type args struct {
Save *EmptyCmd `arg:"subcommand:save" help:"save current window geometries to the your config file"`
DumpX *EmptyCmd `arg:"subcommand:dumpx" help:"show your current window geometries"`
Dump *EmptyCmd `arg:"subcommand:dump" help:"show your current window geometries"`
+ List *EmptyCmd `arg:"subcommand:list" help:"list entries in your config file"`
Force bool `arg:"--force" help:"try to strong arm things"`
Verbose bool `arg:"--verbose" help:"show more output"`
Bash bool `arg:"--bash" help:"generate bash completion"`
@@ -48,7 +49,7 @@ func (a args) DoAutoComplete(argv []string) {
default:
if argv[0] == ARGNAME {
// list the subcommands here
- fmt.Println("--restore save dump dumpx")
+ fmt.Println("--restore save dump dumpx list")
}
}
os.Exit(0)
diff --git a/main.go b/main.go
index 8557d36..d2bebf7 100644
--- a/main.go
+++ b/main.go
@@ -35,6 +35,11 @@ func main() {
doDumpX()
}
+ if argv.List != nil {
+ log.Info("list the config")
+ okExit("")
+ }
+
if argv.Dump != nil {
// 2. Get the current state of all terminal windows.
currentStates, err := getCurrentState()
diff --git a/placement.config.go b/placement.config.go
new file mode 100644
index 0000000..3293a5a
--- /dev/null
+++ b/placement.config.go
@@ -0,0 +1,16 @@
+package main
+
+// functions to import and export the protobuf
+// data to and from config files
+
+import (
+ "go.wit.com/lib/config"
+)
+
+func (pb *Placements) ConfigSave() error {
+ return config.ConfigSave(pb)
+}
+
+func (pb *Placements) ConfigLoad() error {
+ return config.ConfigLoad(pb, ARGNAME, "placements")
+}
diff --git a/placement.proto b/placement.proto
new file mode 100644
index 0000000..a28c819
--- /dev/null
+++ b/placement.proto
@@ -0,0 +1,31 @@
+syntax = "proto3";
+
+package main;
+
+message Placement {
+ message Size {
+ int64 w = 1;
+ int64 h = 2;
+ }
+ message Offset {
+ int64 x = 1;
+ int64 y = 2;
+ }
+ message Geom {
+ Size size = 1;
+ Offset offset = 2;
+ }
+ // used for grid layouts
+ string name = 1; // `autogenpb:sort` `autogenpb:unique`
+ Geom geom = 2;
+ int32 workspace = 3; // what workspace to show the app on
+ string wd = 4; // working dir. Tries to set xterm path at start to this
+ repeated string argv = 5; // argv. argv[0] should be the executable name
+ string namespace = 6; // namespace of the executable (go.wit.com/apps/forge)
+}
+message Placements { // `autogenpb:marshal` `autogenpb:mutex`
+ string uuid = 1; // `autogenpb:uuid:31769bcb-5865-4926-b7d6-501083312eea`
+ string version = 2; // `autogenpb:version:v0.0.1`
+ repeated Placement Placement = 3;
+ string filename = 4; // used by the config save function
+}