summaryrefslogtreecommitdiff
path: root/pkg/hooks/0.1.0/hook.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/hooks/0.1.0/hook.go')
-rw-r--r--pkg/hooks/0.1.0/hook.go88
1 files changed, 0 insertions, 88 deletions
diff --git a/pkg/hooks/0.1.0/hook.go b/pkg/hooks/0.1.0/hook.go
deleted file mode 100644
index c3df5fa1d..000000000
--- a/pkg/hooks/0.1.0/hook.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Package hook is the 0.1.0 hook configuration structure.
-package hook
-
-import (
- "encoding/json"
- "errors"
- "strings"
-
- current "github.com/containers/podman/v4/pkg/hooks/1.0.0"
- rspec "github.com/opencontainers/runtime-spec/specs-go"
-)
-
-// Version is the hook configuration version defined in this package.
-const Version = "0.1.0"
-
-// Hook is the hook configuration structure.
-type Hook struct {
- Hook *string `json:"hook"`
- Arguments []string `json:"arguments,omitempty"`
-
- // https://github.com/cri-o/cri-o/pull/1235
- Stages []string `json:"stages"`
- Stage []string `json:"stage"`
-
- Cmds []string `json:"cmds,omitempty"`
- Cmd []string `json:"cmd,omitempty"`
-
- Annotations []string `json:"annotations,omitempty"`
- Annotation []string `json:"annotation,omitempty"`
-
- HasBindMounts *bool `json:"hasbindmounts,omitempty"`
-}
-
-func Read(content []byte) (hook *current.Hook, err error) {
- var raw Hook
-
- if err = json.Unmarshal(content, &raw); err != nil {
- return nil, err
- }
-
- if raw.Hook == nil {
- return nil, errors.New("missing required property: hook")
- }
-
- if raw.Stages == nil {
- raw.Stages = raw.Stage
- } else if raw.Stage != nil {
- return nil, errors.New("cannot set both 'stage' and 'stages'")
- }
- if raw.Stages == nil {
- return nil, errors.New("missing required property: stages")
- }
-
- if raw.Cmds == nil {
- raw.Cmds = raw.Cmd
- } else if raw.Cmd != nil {
- return nil, errors.New("cannot set both 'cmd' and 'cmds'")
- }
-
- if raw.Annotations == nil {
- raw.Annotations = raw.Annotation
- } else if raw.Annotation != nil {
- return nil, errors.New("cannot set both 'annotation' and 'annotations'")
- }
-
- hook = &current.Hook{
- Version: current.Version,
- Hook: rspec.Hook{
- Path: *raw.Hook,
- },
- When: current.When{
- Commands: raw.Cmds,
- HasBindMounts: raw.HasBindMounts,
- Or: true,
- },
- Stages: raw.Stages,
- }
- if raw.Arguments != nil {
- hook.Hook.Args = append([]string{*raw.Hook}, raw.Arguments...)
- }
- if raw.Annotations != nil {
- hook.When.Annotations = map[string]string{
- ".*": strings.Join(raw.Annotations, "|"),
- }
- }
-
- return hook, nil
-}