2022-12-04 12:19:08 -08:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2023-04-22 20:27:02 -07:00
|
|
|
"babashka-pod-docker/babashka"
|
|
|
|
|
"babashka-pod-docker/docker"
|
2023-08-09 23:10:57 -07:00
|
|
|
"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
|
|
|
|
2023-08-09 23:10:57 -07:00
|
|
|
args := os.Args
|
2022-12-04 12:19:08 -08:00
|
|
|
|
2023-08-09 23:10:57 -07: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
|
|
|
|
|
}
|
2023-05-02 13:06:29 -07:00
|
|
|
|
2023-08-09 23:10:57 -07:00
|
|
|
if res != "running" {
|
|
|
|
|
babashka.WriteInvokeResponse(message, res)
|
|
|
|
|
}
|
2023-05-02 13:06:29 -07:00
|
|
|
}
|
2022-12-04 12:19:08 -08:00
|
|
|
}
|
|
|
|
|
}
|