docs/builder/evaluator/dispatchers.go

46 lines
1.1 KiB
Go

package evaluator
import (
"fmt"
"strings"
)
func env(b *buildFile, args ...string) error {
if len(args) != 2 {
return fmt.Errorf("ENV accepts two arguments")
}
// the duplication here is intended to ease the replaceEnv() call's env
// handling. This routine gets much shorter with the denormalization here.
key := args[0]
b.env[key] = args[1]
b.config.Env = append(b.config.Env, strings.Join("=", key, b.env[key]))
return b.commit("", b.config.Cmd, fmt.Sprintf("ENV %s", value))
}
func maintainer(b *buildFile, args ...string) error {
if len(args) != 1 {
return fmt.Errorf("MAINTAINER requires only one argument")
}
b.maintainer = args[0]
return b.commit("", b.config.Cmd, fmt.Sprintf("MAINTAINER %s", b.maintainer))
}
func add(b *buildFile, args ...string) error {
if len(args) != 2 {
return fmt.Errorf("ADD requires two arguments")
}
return b.runContextCommand(args, true, true, "ADD")
}
func dispatchCopy(b *buildFile, args ...string) error {
if len(args) != 2 {
return fmt.Errorf("COPY requires two arguments")
}
return b.runContextCommand(args, false, false, "COPY")
}