79 absl::SetProgramUsageMessage(
80 absl::StrCat(
"Sample usage:\n",
argv[0],
81 " --working_dir=<directory> --data_dir=<directory>"));
83 std::vector<char*>
args = absl::ParseCommandLine(argc,
argv);
84 absl::SetGlobalVLogLevel(absl::GetFlag(FLAGS_v));
85 absl::InitializeLog();
86 absl::SetStderrThreshold(absl::LogSeverity::kInfo);
88 std::optional<std::string> working_dir = absl::GetFlag(FLAGS_working_dir);
89 std::optional<std::string>
input = absl::GetFlag(FLAGS_input);
90 std::optional<std::string> data_dir = absl::GetFlag(FLAGS_data_dir);
91 std::optional<std::string> licenses_path = absl::GetFlag(FLAGS_licenses_path);
92 std::optional<std::string> include_filter =
93 absl::GetFlag(FLAGS_include_filter);
94 if (working_dir.has_value() && data_dir.has_value() &&
95 licenses_path.has_value()) {
96 std::ofstream licenses;
97 licenses.open(licenses_path.value());
99 std::cerr <<
"Unable to write to '" << licenses_path.value() <<
"'.";
104 absl::GetFlag(FLAGS_treat_unmatched_comments_as_errors);
106 if (
input.has_value()) {
107 if (include_filter.has_value()) {
108 std::cerr <<
"`--input_filter` not supported with `--input`"
111 fs::path full_path = fs::canonical(
input.value());
113 licenses, data_dir.value(), flags);
115 if (include_filter.has_value()) {
116 return Run(working_dir.value(), licenses, data_dir.value(),
117 include_filter.value(), flags);
120 data_dir.value(), flags);
125 if (!working_dir.has_value()) {
126 std::cerr <<
"Expected --working_dir flag." << std::endl;
129 if (!licenses_path.has_value()) {
130 std::cerr <<
"Expected --licenses_path flag." << std::endl;
133 if (!data_dir.has_value()) {
134 std::cerr <<
"Expected --data_dir flag." << std::endl;
int main(int argc, char **argv)
std::shared_ptr< const fml::Mapping > data
ABSL_FLAG(std::optional< std::string >, working_dir, std::nullopt, "[REQUIRED] The directory to scan.")