func (sms *ShowMissingStrings) inspectFile(filename string) error { fset := token.NewFileSet() var absFilePath = filename if !filepath.IsAbs(absFilePath) { absFilePath = filepath.Join(os.Getenv("PWD"), absFilePath) } fileInfo, err := common.GetAbsFileInfo(absFilePath) if err != nil { sms.Println(err) } if strings.HasPrefix(fileInfo.Name(), ".") || !strings.HasSuffix(fileInfo.Name(), ".go") { sms.Println("WARNING ignoring file:", absFilePath) return nil } astFile, err := parser.ParseFile(fset, absFilePath, nil, parser.ParseComments|parser.AllErrors) if err != nil { sms.Println(err) return err } return sms.extractString(astFile, fset, filename) }
func (es *extractStrings) InspectFile(filename string) error { es.Println("i18n4go: extracting strings from file:", filename) if es.options.DryRunFlag { es.Println("WARNING running in -dry-run mode") } es.ExtractedStrings = make(map[string]common.StringInfo) es.FilteredStrings = make(map[string]string) es.FilteredRegexps = []*regexp.Regexp{} es.setFilename(filename) es.setI18nFilename(filename) es.setPoFilename(filename) fset := token.NewFileSet() var absFilePath = filename if !filepath.IsAbs(absFilePath) { absFilePath = filepath.Join(os.Getenv("PWD"), absFilePath) } fileInfo, err := common.GetAbsFileInfo(absFilePath) if err != nil { es.Println(err) } if strings.HasPrefix(fileInfo.Name(), ".") { es.Println("WARNING ignoring file:", absFilePath) return nil } astFile, err := parser.ParseFile(fset, absFilePath, nil, parser.ParseComments|parser.AllErrors) if err != nil { es.Println(err) return err } err = es.loadExcludedStrings() if err != nil { es.Println(err) return err } es.Println(fmt.Sprintf("Loaded %d excluded strings", len(es.FilteredStrings))) err = es.loadExcludedRegexps() if err != nil { es.Println(err) return err } es.Println(fmt.Sprintf("Loaded %d excluded regexps", len(es.FilteredRegexps))) es.excludeImports(astFile) es.extractString(astFile, fset) es.TotalStringsDir += len(es.ExtractedStrings) es.TotalStrings += len(es.ExtractedStrings) es.TotalFiles += 1 es.Printf("Extracted %d strings from file: %s\n", len(es.ExtractedStrings), absFilePath) var outputDirname = es.OutputDirname if es.options.OutputDirFlag != "" { if es.options.OutputMatchImportFlag { outputDirname, err = es.findImportPath(absFilePath) if err != nil { es.Println(err) return err } } else if es.options.OutputMatchPackageFlag { outputDirname, err = es.findPackagePath(absFilePath) if err != nil { es.Println(err) return err } } } else { outputDirname, err = common.FindFilePath(absFilePath) if err != nil { es.Println(err) return err } } if es.options.MetaFlag { err = es.saveExtractedStrings(outputDirname) if err != nil { es.Println(err) return err } } err = common.SaveStrings(es, es.Options(), es.ExtractedStrings, outputDirname, es.i18nFilename) if err != nil { es.Println(err) return err } if es.options.PoFlag { err = common.SaveStringsInPo(es, es.Options(), es.ExtractedStrings, outputDirname, es.poFilename) if err != nil { es.Println(err) return err } } return nil }