Files
babashka-pod-docker/main.go

54 lines
997 B
Go
Raw Permalink Normal View History

2022-12-04 12:19:08 -08:00
package main
import (
"babashka-pod-docker/babashka"
"babashka-pod-docker/docker"
"fmt"
"os"
2023-02-09 13:41:43 +00:00
"github.com/atomist-skills/go-skill"
"github.com/sirupsen/logrus"
2022-12-04 12:19:08 -08:00
)
func main() {
2023-02-09 13:41:43 +00:00
skill.Log.SetLevel(logrus.ErrorLevel)
2022-12-04 12:19:08 -08:00
args := os.Args
2022-12-04 12:19:08 -08:00
if len(args) < 2 {
args = append(os.Args, "pod")
}
switch args[1] {
case "docker-cli-plugin-metadata":
metadata := `{"SchemaVersion": "0.1.0", "Vendor": "Docker Inc.", "Version": "v0.0.1", "ShortDescription": "Docker Pod"}`
fmt.Println(metadata)
case "pod":
for {
message, err := babashka.ReadMessage()
if err != nil {
babashka.WriteErrorResponse(message, err)
continue
}
res, err := docker.ProcessMessage(message)
if err != nil {
babashka.WriteErrorResponse(message, err)
continue
}
describeres, ok := res.(*babashka.DescribeResponse)
if ok {
babashka.WriteDescribeResponse(describeres)
continue
}
if res != "running" {
babashka.WriteInvokeResponse(message, res)
}
}
2022-12-04 12:19:08 -08:00
}
}