func (self *file) Run(ctx scaffolt.Context, dryrun bool) (err error) { source := filepath.Join(ctx.Source(), InterpolateOrDefault(randomString(20), self.desc.Source, ctx)) target := filepath.Join(ctx.Target(), InterpolateOrDefault(randomString(20), self.desc.Target, ctx)) hasContent := self.desc.Content != "" self.l.Printf("Creating file: %s", target) if dryrun { return nil } if self.desc.Interpolate { var str string if hasContent { str, err = Interpolate(randomString(20)+"name", self.desc.Content, ctx) } else { str, err = InterpolateFile(source, ctx) } if err == nil { err = createFileBytes(target, []byte(str), false) } } else { if hasContent { err = createFileBytes(target, []byte(self.desc.Content), false) } else { err = createFile(target, source, false) } } return err }