Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Json for cli implementation and cli config files #1223

Merged
merged 21 commits into from
May 18, 2021
42 changes: 21 additions & 21 deletions apps/yimage/yimage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ struct convert_params {
};

// Cli
void add_command(cli_command& cli, const string& name, convert_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
convert_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "image", params.image, "Input image.");
add_option(cmd, "output", params.output, "Output image.");
add_option(
Expand Down Expand Up @@ -91,9 +91,9 @@ struct view_params {
};

// Cli
void add_command(cli_command& cli, const string& name, view_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
view_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "images", params.images, "Input images.");
add_option(cmd, "output", params.output, "Output image.");
}
Expand Down Expand Up @@ -133,9 +133,9 @@ struct grade_params : colorgrade_params {
};

// Cli
void add_command(cli_command& cli, const string& name, grade_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
grade_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "image", params.image, "Input image.");
add_option(cmd, "output", params.output, "Output image.");
}
Expand Down Expand Up @@ -175,9 +175,9 @@ struct diff_params {
};

// Cli
void add_command(cli_command& cli, const string& name, diff_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
diff_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "image1", params.image1, "Input image 1.");
add_argument(cmd, "image2", params.image2, "Input image 2.");
add_option(cmd, "output", params.output, "Output image.");
Expand Down Expand Up @@ -238,9 +238,9 @@ struct setalpha_params {
};

// Cli
void add_command(cli_command& cli, const string& name, setalpha_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
setalpha_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "image", params.image, "Input image.");
add_argument(cmd, "alpha", params.alpha, "Alpha image.");
add_option(cmd, "output", params.output, "Output image.");
Expand Down Expand Up @@ -308,21 +308,21 @@ struct app_params {
};

// Cli
void add_commands(cli_command& cli, const string& name, app_params& params,
const string& usage) {
cli = make_cli(name, usage);
add_command_name(cli, "command", params.command, "Command.");
cli_state make_commands(
const string& name, app_params& params, const string& usage) {
auto cli = make_cli(name, usage);
set_command_var(cli, params.command);
add_command(cli, "convert", params.convert, "Convert images.");
add_command(cli, "view", params.view, "View images.");
add_command(cli, "grade", params.grade, "Grade images.");
add_command(cli, "diff", params.diff, "Diff two images.");
add_command(cli, "setalpha", params.setalpha, "Set alpha in images.");
return cli;
}

// Parse cli
void parse_cli(app_params& params, int argc, const char** argv) {
auto cli = cli_command{};
add_commands(cli, "yimage", params, "Process and view images.");
auto cli = make_commands("yimage", params, "Process and view images.");
parse_cli(cli, argc, argv);
}

Expand Down
43 changes: 22 additions & 21 deletions apps/ymesh/ymesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
using namespace yocto;

#include <queue>
#include <unordered_set>

// view params
struct view_params {
Expand All @@ -48,11 +49,11 @@ struct view_params {
bool addsky = false;
};

void add_command(cli_command& cli, const string& name, view_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
view_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "shape", params.shape, "Input shape.");
add_option(cmd, "output", params.output, "Output shape.", {});
add_option(cmd, "output", params.output, "Output shape.");
add_option(cmd, "addsky", params.addsky, "Add sky.");
}

Expand Down Expand Up @@ -94,9 +95,9 @@ struct glview_params {
};

// Cli
void add_command(cli_command& cli, const string& name, glview_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
glview_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "shape", params.shape, "Input shape.");
}

Expand Down Expand Up @@ -179,9 +180,9 @@ struct glpath_params {
};

// Cli
void add_command(cli_command& cli, const string& name, glpath_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
glpath_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "shape", params.shape, "Input shape.");
}

Expand Down Expand Up @@ -356,9 +357,9 @@ struct glpathd_params {
};

// Cli
void add_command(cli_command& cli, const string& name, glpathd_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
glpathd_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "shape", params.shape, "Input shape.");
}

Expand Down Expand Up @@ -595,9 +596,9 @@ struct glsculpt_params {
};

// Cli
inline void add_command(cli_command& cli, const string& name,
inline void add_command(const cli_command& cli, const string& name,
glsculpt_params& params, const string& usage) {
auto& cmd = add_command(cli, name, usage);
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "shape", params.shape, "Input shape.");
add_option(cmd, "texture", params.texture, "Brush texture.");
}
Expand Down Expand Up @@ -1321,21 +1322,21 @@ struct app_params {
};

// Cli
void add_commands(cli_command& cli, const string& name, app_params& params,
const string& usage) {
cli = make_cli(name, usage);
add_command_name(cli, "command", params.command, "Command.");
cli_state make_commands(
const string& name, app_params& params, const string& usage) {
auto cli = make_cli(name, usage);
set_command_var(cli, params.command);
add_command(cli, "view", params.view, "View shapes.");
add_command(cli, "glview", params.glview, "View shapes with OpenGL.");
add_command(cli, "glpath", params.glpath, "Trace paths with OpenGL.");
add_command(cli, "glpathd", params.glpathd, "Trace debug paths with OpenGL.");
add_command(cli, "glsculpt", params.glsculpt, "Sculpt meshes with OpenGL.");
return cli;
}

// Parse cli
void parse_cli(app_params& params, int argc, const char** argv) {
auto cli = cli_command{};
add_commands(cli, "ymesh", params, "Process and view meshes.");
auto cli = make_commands("ymesh", params, "Process and view meshes.");
parse_cli(cli, argc, argv);
}

Expand Down
45 changes: 23 additions & 22 deletions apps/yscene/yscene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ struct convert_params {
};

// Cli
void add_command(cli_command& cli, const string& name, convert_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
convert_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "scene", params.scene, "Input scene.");
add_option(cmd, "output", params.output, "Output scene.");
add_option(cmd, "info", params.info, "Print info.");
Expand Down Expand Up @@ -109,9 +109,9 @@ struct info_params {
};

// Cli
void add_command(cli_command& cli, const string& name, info_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
info_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "scene", params.scene, "Input scene.");
add_option(cmd, "validate", params.validate, "Validate scene.");
}
Expand Down Expand Up @@ -149,9 +149,9 @@ struct render_params : trace_params {
};

// Cli
void add_command(cli_command& cli, const string& name, render_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
render_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "scene", params.scene, "Scene filename.");
add_option(cmd, "output", params.output, "Output filename.");
add_option(cmd, "camera", params.camname, "Camera name.");
Expand Down Expand Up @@ -264,10 +264,11 @@ struct view_params : trace_params {
};

// Cli
void add_command(cli_command& cli, const string& name, view_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
add_argument(cmd, "scene", params.scene, "Scene filename.");
void add_command(const cli_command& cli, const string& name,
view_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument_with_config(
cmd, "scene", params.scene, "Scene filename.", "yscene.json");
add_option(cmd, "output", params.output, "Output filename.");
add_option(cmd, "camera", params.camname, "Camera name.");
add_option(cmd, "addsky", params.addsky, "Add sky.");
Expand Down Expand Up @@ -347,9 +348,9 @@ struct glview_params {
};

// Cli
void add_command(cli_command& cli, const string& name, glview_params& params,
const string& usage) {
auto& cmd = add_command(cli, name, usage);
void add_command(const cli_command& cli, const string& name,
glview_params& params, const string& usage) {
auto cmd = add_command(cli, name, usage);
add_argument(cmd, "scene", params.scene, "Input scene.");
add_option(cmd, "camera", params.camname, "Camera name.");
}
Expand Down Expand Up @@ -404,21 +405,21 @@ struct app_params {
};

// Cli
void add_commands(cli_command& cli, const string& name, app_params& params,
const string& usage) {
cli = make_cli(name, usage);
add_command_name(cli, "command", params.command, "Command.");
cli_state make_commands(
const string& name, app_params& params, const string& usage) {
auto cli = make_cli(name, usage);
set_command_var(cli, params.command);
add_command(cli, "convert", params.convert, "Convert scenes.");
add_command(cli, "info", params.info, "Print scenes info.");
add_command(cli, "render", params.render, "Render scenes.");
add_command(cli, "view", params.view, "View scenes.");
add_command(cli, "glview", params.glview, "View scenes with OpenGL.");
return cli;
}

// Parse cli
void parse_cli(app_params& params, int argc, const char** argv) {
auto cli = cli_command{};
add_commands(cli, "yscene", params, "Process and view scenes.");
auto cli = make_commands("yscene", params, "Process and view scenes.");
parse_cli(cli, argc, argv);
}

Expand Down
Loading