aboutsummaryrefslogtreecommitdiffstats
path: root/common/command.cc
diff options
context:
space:
mode:
Diffstat (limited to 'common/command.cc')
-rw-r--r--common/command.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/common/command.cc b/common/command.cc
index f144db37..9eace237 100644
--- a/common/command.cc
+++ b/common/command.cc
@@ -187,7 +187,9 @@ int CommandHandler::executeMain(std::unique_ptr<Context> ctx)
log_error("Loading design failed.\n");
customAfterLoad(ctx.get());
+ }
+ if (vm.count("json") || vm.count("load")) {
if (!ctx->pack() && !ctx->force)
log_error("Packing design failed.\n");
ctx->check();
@@ -215,6 +217,11 @@ int CommandHandler::executeMain(std::unique_ptr<Context> ctx)
deinit_python();
}
#endif
+
+ if (vm.count("save")) {
+ project.save(ctx.get(), vm["save"].as<std::string>());
+ }
+
return 0;
}
@@ -235,7 +242,13 @@ int CommandHandler::exec()
if (executeBeforeContext())
return 0;
- std::unique_ptr<Context> ctx = createContext();
+
+ std::unique_ptr<Context> ctx;
+ if (vm.count("load")) {
+ ctx = project.load(vm["load"].as<std::string>());
+ } else {
+ ctx = createContext();
+ }
setupContext(ctx.get());
setupArchContext(ctx.get());
return executeMain(std::move(ctx));