aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-05-28 14:01:57 +0200
committerEelco Dolstra <edolstra@gmail.com>2019-05-28 14:01:57 +0200
commit46294d60cd46564ea6b40cf9c32759021f9d1fc9 (patch)
tree20af6a973bcf4b02f7ef41a4a55bb6a5199aeacc /src
parentecee759b80a5a4cefbf15c3670f28bdebb58c404 (diff)
printFlakeInfo: Separate JSON output
Diffstat (limited to 'src')
-rw-r--r--src/nix/flake.cc59
1 files changed, 32 insertions, 27 deletions
diff --git a/src/nix/flake.cc b/src/nix/flake.cc
index 810529613..0fea1993c 100644
--- a/src/nix/flake.cc
+++ b/src/nix/flake.cc
@@ -94,34 +94,36 @@ static void sourceInfoToJson(const SourceInfo & sourceInfo, nlohmann::json & j)
j["path"] = sourceInfo.storePath;
}
-static void printFlakeInfo(const Flake & flake, bool json)
+static void printFlakeInfo(const Flake & flake)
{
- if (json) {
- nlohmann::json j;
- j["id"] = flake.id;
- j["description"] = flake.description;
- j["epoch"] = flake.epoch;
- sourceInfoToJson(flake.sourceInfo, j);
- std::cout << j.dump(4) << std::endl;
- } else {
- std::cout << "ID: " << flake.id << "\n";
- std::cout << "Description: " << flake.description << "\n";
- std::cout << "Epoch: " << flake.epoch << "\n";
- printSourceInfo(flake.sourceInfo);
- }
+ std::cout << "ID: " << flake.id << "\n";
+ std::cout << "Description: " << flake.description << "\n";
+ std::cout << "Epoch: " << flake.epoch << "\n";
+ printSourceInfo(flake.sourceInfo);
}
-static void printNonFlakeInfo(const NonFlake & nonFlake, bool json)
+static nlohmann::json flakeToJson(const Flake & flake)
{
- if (json) {
- nlohmann::json j;
- j["id"] = nonFlake.alias;
- printSourceInfo(nonFlake.sourceInfo);
- std::cout << j.dump(4) << std::endl;
- } else {
- std::cout << "ID: " << nonFlake.alias << "\n";
- printSourceInfo(nonFlake.sourceInfo);
- }
+ nlohmann::json j;
+ j["id"] = flake.id;
+ j["description"] = flake.description;
+ j["epoch"] = flake.epoch;
+ sourceInfoToJson(flake.sourceInfo, j);
+ return j;
+}
+
+static void printNonFlakeInfo(const NonFlake & nonFlake)
+{
+ std::cout << "ID: " << nonFlake.alias << "\n";
+ printSourceInfo(nonFlake.sourceInfo);
+}
+
+static nlohmann::json nonFlakeToJson(const NonFlake & nonFlake)
+{
+ nlohmann::json j;
+ j["id"] = nonFlake.alias;
+ sourceInfoToJson(nonFlake.sourceInfo, j);
+ return j;
}
// FIXME: merge info CmdFlakeInfo?
@@ -152,10 +154,10 @@ struct CmdFlakeDeps : FlakeCommand
todo.pop();
for (auto & nonFlake : resFlake.nonFlakeDeps)
- printNonFlakeInfo(nonFlake, false);
+ printNonFlakeInfo(nonFlake);
for (auto & info : resFlake.flakeDeps) {
- printFlakeInfo(info.second.flake, false);
+ printFlakeInfo(info.second.flake);
todo.push(info.second);
}
}
@@ -205,7 +207,10 @@ struct CmdFlakeInfo : FlakeCommand, MixJSON
{
auto flake = getFlake();
stopProgressBar();
- printFlakeInfo(flake, json);
+ if (json)
+ std::cout << flakeToJson(flake).dump() << std::endl;
+ else
+ printFlakeInfo(flake);
}
};