|
26 | 26 | valueType = flag.String("vt", "interface{}", "value type")
|
27 | 27 | hashFn = flag.String("hfn", "cmap.DefaultKeyHasher", "hash func")
|
28 | 28 | pkgPath = flag.String("p", "", "package path")
|
| 29 | + lmapOnly = flag.Bool("lmap", false, "generate LMap only") |
29 | 30 |
|
30 | 31 | toStdout = flag.Bool("stdout", false, "write the output to stdout rather than creating a package")
|
31 | 32 |
|
@@ -65,7 +66,12 @@ func main() {
|
65 | 66 | }
|
66 | 67 | }
|
67 | 68 |
|
68 |
| - r, closeReaders := multiFileReader(filepath.Join(cmapBase, "cmap.go"), filepath.Join(cmapBase, "lmap.go")) |
| 69 | + files := []string{filepath.Join(cmapBase, "cmap.go"), filepath.Join(cmapBase, "lmap.go")} |
| 70 | + if *lmapOnly { |
| 71 | + files = files[1:] |
| 72 | + } |
| 73 | + |
| 74 | + r, closeReaders := multiFileReader(files...) |
69 | 75 | var (
|
70 | 76 | filters = getLineFilters()
|
71 | 77 | buf bytes.Buffer
|
@@ -100,7 +106,12 @@ package %s
|
100 | 106 | log.Fatalf("error compiling code: \n\t%s\n\n%s", strings.Join(errs, "\n\t"), src)
|
101 | 107 | }
|
102 | 108 |
|
103 |
| - fp := filepath.Join(*pkgPath, "cmap.go") |
| 109 | + var fp string |
| 110 | + if *lmapOnly { |
| 111 | + fp = filepath.Join(*pkgPath, "lmap.go") |
| 112 | + } else { |
| 113 | + fp = filepath.Join(*pkgPath, "cmap.go") |
| 114 | + } |
104 | 115 |
|
105 | 116 | if *verbose {
|
106 | 117 | log.Printf("writing typed cmap %s.CMap[%s][%s] (using HashFn: %s) to file %s...", *pkgName, *keyType, *valueType, *hashFn, fp)
|
|
0 commit comments