}
for _, arg := range args[:len(args)-1] {
- src := ts.mkabs(arg)
- info, err := os.Stat(src)
- ts.check(err)
- data, err := ioutil.ReadFile(src)
- ts.check(err)
+ var (
+ src string
+ data []byte
+ mode os.FileMode
+ )
+ switch arg {
+ case "stdout":
+ src = arg
+ data = []byte(ts.stdout)
+ mode = 0666
+ case "stderr":
+ src = arg
+ data = []byte(ts.stderr)
+ mode = 0666
+ default:
+ src = ts.mkabs(arg)
+ info, err := os.Stat(src)
+ ts.check(err)
+ mode = info.Mode() & 0777
+ data, err = ioutil.ReadFile(src)
+ ts.check(err)
+ }
targ := dst
if dstDir {
targ = filepath.Join(dst, filepath.Base(src))
}
- ts.check(ioutil.WriteFile(targ, data, info.Mode()&0777))
+ ts.check(ioutil.WriteFile(targ, data, mode))
}
}
- cp src... dst
Copy the listed files to the target file or existing directory.
+ src can include "stdout" or "stderr" to use the standard output or standard error
+ from the most recent exec or go command.
- env [key=value...]
With no arguments, print the environment (useful for debugging).