Skip to content

Commit 2bd0647

Browse files
authored
Merge pull request #250 from wravery/clientgen-usage
Fix #248
2 parents 681c08d + cda3f2d commit 2bd0647

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

src/ClientGenerator.cpp

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,6 +1224,7 @@ int main(int argc, char** argv)
12241224
po::variables_map variables;
12251225
bool showUsage = false;
12261226
bool showVersion = false;
1227+
bool buildCustom = false;
12271228
bool verbose = false;
12281229
bool noIntrospection = false;
12291230
std::string schemaFileName;
@@ -1264,21 +1265,28 @@ int main(int argc, char** argv)
12641265
variables);
12651266
po::notify(variables);
12661267

1267-
if (schemaFileName.empty())
1268-
{
1269-
throw po::required_option("schema");
1270-
}
1271-
else if (requestFileName.empty())
1272-
{
1273-
throw po::required_option("request");
1274-
}
1275-
else if (filenamePrefix.empty())
1276-
{
1277-
throw po::required_option("prefix");
1278-
}
1279-
else if (schemaNamespace.empty())
1268+
// If you specify any of these parameters, you must specify all four.
1269+
buildCustom = !schemaFileName.empty() || !requestFileName.empty() || !filenamePrefix.empty()
1270+
|| !schemaNamespace.empty();
1271+
1272+
if (buildCustom)
12801273
{
1281-
throw po::required_option("namespace");
1274+
if (schemaFileName.empty())
1275+
{
1276+
throw po::required_option("schema");
1277+
}
1278+
else if (requestFileName.empty())
1279+
{
1280+
throw po::required_option("request");
1281+
}
1282+
else if (filenamePrefix.empty())
1283+
{
1284+
throw po::required_option("prefix");
1285+
}
1286+
else if (schemaNamespace.empty())
1287+
{
1288+
throw po::required_option("namespace");
1289+
}
12821290
}
12831291
}
12841292
catch (const po::error& oe)
@@ -1293,7 +1301,7 @@ int main(int argc, char** argv)
12931301
outputVersion(std::cout);
12941302
return 0;
12951303
}
1296-
else if (showUsage)
1304+
else if (showUsage || !buildCustom)
12971305
{
12981306
outputUsage(std::cout, options);
12991307
return 0;

0 commit comments

Comments
 (0)