genfileembed: command line flag for pattern file

Offer a choice from which go-file the #fileembed pattern is read. The
default is still "fileembed.go".

Change-Id: Ida98850162adec33a6555b09ad320bd9ee573b8d
This commit is contained in:
Fabian Wickborn 2014-10-17 13:11:23 +02:00
parent 06880fee9d
commit 119b38966a
1 changed files with 5 additions and 3 deletions

View File

@ -49,6 +49,8 @@ var (
chunkPackage = flag.String("chunk-package", "", "Package to hold chunks") chunkPackage = flag.String("chunk-package", "", "Package to hold chunks")
destFilesStderr = flag.Bool("output-files-stderr", false, "Write the absolute path of all output files to stderr prefixed with OUTPUT:") destFilesStderr = flag.Bool("output-files-stderr", false, "Write the absolute path of all output files to stderr prefixed with OUTPUT:")
patternFilename = flag.String("pattern-file", "fileembed.go", "Filepath relative to <dir> from which to read the #fileembed pattern")
) )
const ( const (
@ -91,7 +93,7 @@ func main() {
pkgName, filePattern, fileEmbedModTime, err := parseFileEmbed() pkgName, filePattern, fileEmbedModTime, err := parseFileEmbed()
if err != nil { if err != nil {
log.Fatalf("Error parsing %s/fileembed.go: %v", dir, err) log.Fatalf("Error parsing %s/%s: %v", dir, *patternFilename, err)
} }
for _, fileName := range matchingFiles(filePattern) { for _, fileName := range matchingFiles(filePattern) {
@ -274,7 +276,7 @@ func matchingFiles(p *regexp.Regexp) []string {
} }
func parseFileEmbed() (pkgName string, filePattern *regexp.Regexp, modTime time.Time, err error) { func parseFileEmbed() (pkgName string, filePattern *regexp.Regexp, modTime time.Time, err error) {
fe, err := os.Open("fileembed.go") fe, err := os.Open(*patternFilename)
if err != nil { if err != nil {
return return
} }
@ -287,7 +289,7 @@ func parseFileEmbed() (pkgName string, filePattern *regexp.Regexp, modTime time.
modTime = fi.ModTime() modTime = fi.ModTime()
fs := token.NewFileSet() fs := token.NewFileSet()
astf, err := parser.ParseFile(fs, "fileembed.go", fe, parser.PackageClauseOnly|parser.ParseComments) astf, err := parser.ParseFile(fs, *patternFilename, fe, parser.PackageClauseOnly|parser.ParseComments)
if err != nil { if err != nil {
return return
} }