Removes all references to the controller and moves the remaining sections of code to other packages. Processes has been moved to monitor where it is used and the data structs have been removed so buildflags is used directly. The controller build function has been moved to the commands package. Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
80 lines
1.6 KiB
Go
80 lines
1.6 KiB
Go
package buildflags
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/pkg/errors"
|
|
"github.com/tonistiigi/go-csvvalue"
|
|
)
|
|
|
|
const defaultCallFunc = "build"
|
|
|
|
type CallFunc struct {
|
|
Name string
|
|
Format string
|
|
IgnoreStatus bool
|
|
}
|
|
|
|
func (x *CallFunc) String() string {
|
|
var elems []string
|
|
if x.Name != "" {
|
|
elems = append(elems, fmt.Sprintf("Name:%q", x.Name))
|
|
}
|
|
if x.Format != "" {
|
|
elems = append(elems, fmt.Sprintf("Format:%q", x.Format))
|
|
}
|
|
if x.IgnoreStatus {
|
|
elems = append(elems, fmt.Sprintf("IgnoreStatus:%v", x.IgnoreStatus))
|
|
}
|
|
return strings.Join(elems, " ")
|
|
}
|
|
|
|
func ParseCallFunc(str string) (*CallFunc, error) {
|
|
if str == "" {
|
|
return nil, nil
|
|
}
|
|
|
|
fields, err := csvvalue.Fields(str, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
f := &CallFunc{}
|
|
for _, field := range fields {
|
|
parts := strings.SplitN(field, "=", 2)
|
|
if len(parts) == 2 {
|
|
switch parts[0] {
|
|
case "format":
|
|
f.Format = parts[1]
|
|
case "ignorestatus":
|
|
v, err := strconv.ParseBool(parts[1])
|
|
if err != nil {
|
|
return nil, errors.Wrapf(err, "invalid ignorestatus print value: %s", parts[1])
|
|
}
|
|
f.IgnoreStatus = v
|
|
default:
|
|
return nil, errors.Errorf("invalid print field: %s", field)
|
|
}
|
|
} else {
|
|
if f.Name != "" {
|
|
return nil, errors.Errorf("invalid print value: %s", str)
|
|
}
|
|
f.Name = field
|
|
}
|
|
}
|
|
|
|
// "check" has been added as an alias for "lint",
|
|
// in order to maintain backwards compatibility
|
|
// we need to convert it.
|
|
if f.Name == "check" {
|
|
f.Name = "lint"
|
|
}
|
|
|
|
if f.Name == defaultCallFunc {
|
|
return nil, nil
|
|
}
|
|
|
|
return f, nil
|
|
}
|