woodpecker/yaml/transform/plugin.go

48 lines
1.1 KiB
Go

package transform
import (
"path/filepath"
"github.com/drone/drone/yaml"
)
// PluginDisable is a transform function that alters the Yaml configuration to
// disables plugins. This is intended for use when executing the pipeline
// locally on your own computer.
func PluginDisable(conf *yaml.Config, patterns []string) error {
for _, container := range conf.Pipeline {
if len(container.Commands) != 0 { // skip build steps
continue
}
var match bool
for _, pattern := range patterns {
if ok, _ := filepath.Match(pattern, container.Name); ok {
match = true
break
}
}
if !match {
container.Disabled = true
}
}
return nil
}
// PluginParams is a transform function that alters the Yaml configuration to
// include plugin vargs parameters as environment variables.
func PluginParams(conf *yaml.Config) error {
for _, container := range conf.Pipeline {
if len(container.Vargs) == 0 {
continue
}
if container.Environment == nil {
container.Environment = map[string]string{}
}
err := argsToEnv(container.Vargs, container.Environment)
if err != nil {
return err
}
}
return nil
}