drone-yaml/yaml/port.go

37 lines
688 B
Go
Raw Permalink Normal View History

// Copyright (c) 2019, Drone IO Inc.
// Copyright (c) 2021, Robert Kaussow <mail@thegeeklab.de>
2019-02-10 20:00:16 +01:00
2019-01-23 00:44:17 +01:00
package yaml
type (
// Port represents a network port in a single container.
Port struct {
Port int `json:"port,omitempty"`
Host int `json:"host,omitempty"`
Protocol string `json:"protocol,omitempty"`
}
port struct {
Port int
Host int
Protocol string
}
)
// UnmarshalYAML implements yaml unmarshalling.
func (p *Port) UnmarshalYAML(unmarshal func(interface{}) error) error {
out := new(port)
2019-01-23 00:44:17 +01:00
err := unmarshal(&out.Port)
if err != nil {
err = unmarshal(&out)
}
2019-01-23 00:44:17 +01:00
p.Port = out.Port
p.Host = out.Host
p.Protocol = out.Protocol
2019-01-23 00:44:17 +01:00
return err
}