| package main |
| |
| import ( |
| "flag" |
| "fmt" |
| "os" |
| |
| "github.com/bazelbuild/rules_typescript/ts_auto_deps/platform" |
| "github.com/bazelbuild/rules_typescript/ts_auto_deps/updater" |
| ) |
| |
| var ( |
| isRoot = flag.Bool("root", false, "the given path is the root of a TypeScript project "+ |
| "(generates ts_config and ts_development_sources targets).") |
| recursive = flag.Bool("recursive", false, "recursively update all packages under the given root.") |
| files = flag.Bool("files", false, "treats arguments as file names. Filters .ts files, then runs on their dirnames.") |
| ) |
| |
| func usage() { |
| fmt.Fprintf(os.Stderr, `ts_auto_deps: generate BUILD rules for TypeScript sources. |
| |
| usage: %s [flags] [path...] |
| |
| ts_auto_deps generates and updates BUILD rules for each of the given package paths. |
| Paths are expected to reside underneath the workspace root. If none is given, |
| ts_auto_deps runs on the current working directory. |
| |
| For each of the given package paths, ts_auto_deps finds all TypeScript sources in the |
| package and adds sources that are not currently built to the appropriate |
| BUILD rule (ts_library or ts_declaration). |
| |
| If there is no matching BUILD rule, or no BUILD file, ts_auto_deps will create either. |
| |
| ts_auto_deps also updates BUILD rule dependencies ('deps') based on the source imports. |
| |
| Flags: |
| `, os.Args[0]) |
| flag.PrintDefaults() |
| } |
| |
| func main() { |
| flag.Usage = usage |
| flag.Parse() |
| |
| paths, err := updater.Paths(*isRoot, *files, *recursive) |
| if err != nil { |
| platform.Error(err) |
| } |
| |
| host := updater.New(false, false, updater.QueryBasedBazelAnalyze, updater.LocalUpdateFile) |
| if err := updater.Execute(host, paths, *isRoot, *recursive); err != nil { |
| platform.Error(err) |
| } |
| } |