Add CLI to interact with Diun through gRPC (#382)

Add simple CLI to interact with Diun through gRPC
Create image and notif proto services
Compile and validate protos through a dedicated Dockerfile and bake target
Implement proto definitions
Move server as `serve` command
New commands `image` and `notif`
Refactor command line usage doc
Better CLI error handling
Tools build constraint to manage tools deps through go modules
Add upgrade notes

Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2021-05-26 18:18:10 +02:00
committed by GitHub
parent 1318a007e3
commit 1115234010
44 changed files with 2376 additions and 343 deletions

30
cmd/notif.go Normal file
View File

@@ -0,0 +1,30 @@
package main
import (
"context"
"fmt"
"github.com/crazy-max/diun/v4/pb"
)
// NotifCmd holds notif command
type NotifCmd struct {
Test NotifTestCmd `kong:"cmd,help='Test notification settings.'"`
}
// NotifTestCmd holds notif test command
type NotifTestCmd struct {
CliGlobals
}
func (s *NotifTestCmd) Run(ctx *Context) error {
defer s.conn.Close()
nt, err := s.notifSvc.NotifTest(context.Background(), &pb.NotifTestRequest{})
if err != nil {
return err
}
fmt.Println(nt.Message)
return nil
}