diff --git a/mk2rbc/cmd/mk2rbc.go b/mk2rbc/cmd/mk2rbc.go index 7b5f298e2..9d0f0c1b0 100644 --- a/mk2rbc/cmd/mk2rbc.go +++ b/mk2rbc/cmd/mk2rbc.go @@ -154,47 +154,49 @@ func main() { } // Convert! - ok := true - if *launcher != "" { - if len(flag.Args()) != 1 { - quit(fmt.Errorf("a launcher can be generated only for a single product")) + files := flag.Args() + productConfigMap := buildProductConfigMap() + if *allInSource { + for _, path := range productConfigMap { + files = append(files, path) } - product := flag.Args()[0] - productConfigMap := buildProductConfigMap() - path, found := productConfigMap[product] - if !found { - quit(fmt.Errorf("cannot generate configuration launcher for %s, it is not a known product", - product)) + } + for i, file := range files { + if _, err := os.Stat(file); os.IsNotExist(err) { + temp, ok := productConfigMap[file] + if ok { + files[i] = temp + } else { + quit(fmt.Errorf("%s is neither a product makefile nor a product name", file)) + } + } + } + ok := true + for _, mkFile := range files { + ok = convertOne(mkFile) && ok + } + + if *launcher != "" { + if len(files) != 1 { + quit(fmt.Errorf("a launcher can be generated only for a single product")) } versionDefaults, err := generateVersionDefaults() if err != nil { quit(err) } - ok = convertOne(path) && ok versionDefaultsPath := outputFilePath(versionDefaultsMk) err = writeGenerated(versionDefaultsPath, versionDefaults) if err != nil { - fmt.Fprintf(os.Stderr, "%s:%s", path, err) + fmt.Fprintf(os.Stderr, "%s:%s", files[0], err) ok = false } - err = writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(path), versionDefaultsPath, - mk2rbc.MakePath2ModuleName(path))) + err = writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(files[0]), versionDefaultsPath, + mk2rbc.MakePath2ModuleName(files[0]))) if err != nil { - fmt.Fprintf(os.Stderr, "%s:%s", path, err) + fmt.Fprintf(os.Stderr, "%s:%s", files[0], err) ok = false } - } else { - files := flag.Args() - if *allInSource { - productConfigMap := buildProductConfigMap() - for _, path := range productConfigMap { - files = append(files, path) - } - } - for _, mkFile := range files { - ok = convertOne(mkFile) && ok - } } printStats()