[Zucchini] Add command line processing framework with stubs.
This CL adds main_utils.*, which has the framework to dispatch Zucchini
commands and print help messages. This is used by the Zucchini main
program, and is not part of Zucchini library.
- Add ::Command: A struct containing command name (e.g., "-gen",
"-apply"), help message, and a base::Callback containing code for
the main command. This allows Zucchini command dispatch without bulky
bulky class hierarchy and superfluous instantialization.
- Add ::CommandRegistry: A class to manage ::Command instances and
dispatch commands, or print help messages.
- Add ::ResourceUsageTracker: A class instantiated in main() to track
resource usage for valid command invocations, and and print them at
end. Specifically:
- Zucchini.PeakPagefileUsage (KiB)
- Zucchini.PeakWorkingSetSize (KiB)
- Zucchini.TotalTime (s)
Also add "-quiet" switch to disable this.
- Add stubs for Zucchini-gen and Zucchini-apply, to be populated later.
- Starting to use LOG(INFO) to display output. This requires updating
PRESUBMIT.py to add Zucchini as an exception.
Bug: 729154
Change-Id: Id5263435100dc73b2d8917ca2bcd04245ed41934
Reviewed-on: https://chromium-review.googlesource.com/567492
Commit-Queue: Samuel Huang <[email protected]>
Reviewed-by: Dirk Pranke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#486762}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 8cb86fe..fc07745 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1149,6 +1149,7 @@
r"^chrome[\\\/]browser[\\\/]ui[\\\/]startup[\\\/]"
r"startup_browser_creator\.cc$",
r"^chrome[\\\/]installer[\\\/]setup[\\\/].*",
+ r"^chrome[\\\/]installer[\\\/]zucchini[\\\/].*",
r"chrome[\\\/]browser[\\\/]diagnostics[\\\/]" +
r"diagnostics_writer\.cc$",
r"^chrome_elf[\\\/]dll_hash[\\\/]dll_hash_main\.cc$",