|
7 | 7 | "os" |
8 | 8 | "os/exec" |
9 | 9 | "path/filepath" |
| 10 | + "regexp" |
10 | 11 | "strings" |
11 | 12 | "time" |
12 | 13 |
|
@@ -56,6 +57,7 @@ Example use: |
56 | 57 | includeTransDependants, _ = cmd.Flags().GetBool("transitive-dependants") |
57 | 58 | components, _ = cmd.Flags().GetBool("components") |
58 | 59 | filterType, _ = cmd.Flags().GetStringArray("filter-type") |
| 60 | + filterName, _ = cmd.Flags().GetString("filter-name") |
59 | 61 | watch, _ = cmd.Flags().GetBool("watch") |
60 | 62 | parallel, _ = cmd.Flags().GetBool("parallel") |
61 | 63 | rawOutput, _ = cmd.Flags().GetBool("raw-output") |
@@ -131,6 +133,21 @@ Example use: |
131 | 133 | } |
132 | 134 | } |
133 | 135 |
|
| 136 | + if filterName != "" { |
| 137 | + filterExpr, err := regexp.Compile(filterName) |
| 138 | + if err != nil { |
| 139 | + log.WithError(err).Fatal("invalid filter-name expression") |
| 140 | + } |
| 141 | + for pkg := range pkgs { |
| 142 | + if filterExpr.MatchString(pkg.FullName()) { |
| 143 | + continue |
| 144 | + } |
| 145 | + |
| 146 | + log.WithField("package", pkg.FullName()).Debug("filtering out due to filter-name") |
| 147 | + delete(pkgs, pkg) |
| 148 | + } |
| 149 | + } |
| 150 | + |
134 | 151 | spkgs := make([]*leeway.Package, 0, len(pkgs)) |
135 | 152 | for p := range pkgs { |
136 | 153 | spkgs = append(spkgs, p) |
@@ -305,6 +322,7 @@ func init() { |
305 | 322 | execCmd.Flags().Bool("transitive-dependants", false, "select transitive package dependants") |
306 | 323 | execCmd.Flags().Bool("components", false, "select the package's components (e.g. instead of selecting three packages from the same component, execute just once in the component origin)") |
307 | 324 | execCmd.Flags().StringArray("filter-type", nil, "only select packages of this type") |
| 325 | + execCmd.Flags().String("filter-name", "", "only select packages matching this name regular expression") |
308 | 326 | execCmd.Flags().Bool("watch", false, "Watch source files and re-execute on change") |
309 | 327 | execCmd.Flags().Bool("parallel", false, "Start all executions in parallel independent of their order") |
310 | 328 | execCmd.Flags().Bool("raw-output", false, "Produce output without package prefix") |
|
0 commit comments