@@ -326,44 +326,59 @@ void GenerateMetadata(
326326void GenerateScaffold (
327327 std::map<std::string, std::string> const & vars,
328328 std::string const & scaffold_templates_path, std::string const & output_path,
329- google::cloud::cpp::generator::ServiceConfiguration const & service) {
329+ google::cloud::cpp::generator::ServiceConfiguration const & service,
330+ ScaffoldFiles scaffold_files) {
330331 using Generator = std::function<void (
331332 std::ostream&, std::map<std::string, std::string> const &)>;
332333 struct Destination {
333334 std::string name;
334335 Generator generator;
335- } files[] = {
336- {" README.md" , GenerateReadme},
337- {" BUILD.bazel" , GenerateBuild},
338- {" CMakeLists.txt" , GenerateCMakeLists},
339- {" doc/main.dox" , GenerateDoxygenMainPage},
340- {" doc/environment-variables.dox" , GenerateDoxygenEnvironmentPage},
341- {" doc/override-authentication.dox" , GenerateOverrideAuthenticationPage},
342- {" doc/override-endpoint.dox" , GenerateOverrideEndpointPage},
343- {" doc/override-retry-policies.dox" , GenerateOverrideRetryPoliciesPage},
344- {" doc/options.dox" , GenerateDoxygenOptionsPage},
345- {" quickstart/README.md" , GenerateQuickstartReadme},
346- {" quickstart/quickstart.cc" , GenerateQuickstartSkeleton},
347- {" quickstart/CMakeLists.txt" , GenerateQuickstartCMake},
348- {" quickstart/Makefile" , GenerateQuickstartMakefile},
349- {" quickstart/BUILD.bazel" , GenerateQuickstartBuild},
350- {" quickstart/.bazelrc" , GenerateQuickstartBazelrc},
351336 };
352337
353338 MakeDirectory (output_path + " /" );
354339 auto const destination =
355340 output_path + " /" + LibraryPath (service.product_path ());
356341 MakeDirectory (destination);
357342 MakeDirectory (destination + " doc/" );
358- MakeDirectory (destination + " quickstart/" );
343+
344+ std::vector<Destination> files;
345+ if (scaffold_files == ScaffoldFiles::kDocDir ) {
346+ files = {
347+ {" doc/environment-variables.dox" , GenerateDoxygenEnvironmentPage},
348+ {" doc/override-authentication.dox" , GenerateOverrideAuthenticationPage},
349+ {" doc/override-endpoint.dox" , GenerateOverrideEndpointPage},
350+ {" doc/override-retry-policies.dox" , GenerateOverrideRetryPoliciesPage},
351+ {" doc/options.dox" , GenerateDoxygenOptionsPage},
352+ };
353+ } else {
354+ MakeDirectory (destination + " quickstart/" );
355+ files = {
356+ {" README.md" , GenerateReadme},
357+ {" BUILD.bazel" , GenerateBuild},
358+ {" CMakeLists.txt" , GenerateCMakeLists},
359+ {" doc/main.dox" , GenerateDoxygenMainPage},
360+ {" doc/environment-variables.dox" , GenerateDoxygenEnvironmentPage},
361+ {" doc/override-authentication.dox" , GenerateOverrideAuthenticationPage},
362+ {" doc/override-endpoint.dox" , GenerateOverrideEndpointPage},
363+ {" doc/override-retry-policies.dox" , GenerateOverrideRetryPoliciesPage},
364+ {" doc/options.dox" , GenerateDoxygenOptionsPage},
365+ {" quickstart/README.md" , GenerateQuickstartReadme},
366+ {" quickstart/quickstart.cc" , GenerateQuickstartSkeleton},
367+ {" quickstart/CMakeLists.txt" , GenerateQuickstartCMake},
368+ {" quickstart/Makefile" , GenerateQuickstartMakefile},
369+ {" quickstart/BUILD.bazel" , GenerateQuickstartBuild},
370+ {" quickstart/.bazelrc" , GenerateQuickstartBazelrc},
371+ };
372+ std::ifstream is (scaffold_templates_path + kWorkspaceTemplate );
373+ auto const contents = std::string{std::istreambuf_iterator<char >(is), {}};
374+ std::ofstream os (destination + " quickstart/WORKSPACE.bazel" );
375+ GenerateQuickstartWorkspace (os, vars, contents);
376+ }
377+
359378 for (auto const & f : files) {
360379 std::ofstream os (destination + f.name );
361380 f.generator (os, vars);
362381 }
363- std::ifstream is (scaffold_templates_path + kWorkspaceTemplate );
364- auto const contents = std::string{std::istreambuf_iterator<char >(is), {}};
365- std::ofstream os (destination + " quickstart/WORKSPACE.bazel" );
366- GenerateQuickstartWorkspace (os, vars, contents);
367382}
368383
369384void GenerateReadme (std::ostream& os,
@@ -547,7 +562,6 @@ which should give you a taste of the $title$ C++ client library API.
547562void GenerateDoxygenEnvironmentPage (
548563 std::ostream& os, std::map<std::string, std::string> const & variables) {
549564 auto constexpr kText = R"""( /*!
550-
551565@page $library$-env Environment Variables
552566
553567A number of environment variables can be used to configure the behavior of
0 commit comments