From edef2df21ba98d136027372cfd609445df8539d9 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Sun, 24 Feb 2019 04:11:25 +0100 Subject: [PATCH] depot_query: scan depot for users --- repos/gems/src/app/depot_query/main.cc | 32 ++++++-------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/repos/gems/src/app/depot_query/main.cc b/repos/gems/src/app/depot_query/main.cc index c61bbb715..e77262a59 100644 --- a/repos/gems/src/app/depot_query/main.cc +++ b/repos/gems/src/app/depot_query/main.cc @@ -166,7 +166,7 @@ struct Depot_query::Main typedef Constructible Constructible_reporter; - Constructible_reporter _directory_reporter { }; + Constructible_reporter _scan_reporter { }; Constructible_reporter _blueprint_reporter { }; Constructible_reporter _dependencies_reporter { }; Constructible_reporter _user_reporter { }; @@ -222,7 +222,6 @@ struct Depot_query::Main Rom_label const &rom_label, Recursion_limit recursion_limit); - void _scan_depot_user_pkg(Archive::User const &, Directory const &, Xml_generator &); void _query_blueprint(Directory::Path const &, Xml_generator &); void _collect_source_dependencies(Archive::Path const &, Dependencies &, Recursion_limit); void _collect_binary_dependencies(Archive::Path const &, Dependencies &, Recursion_limit); @@ -257,7 +256,7 @@ struct Depot_query::Main Xml_node const query = (query_from_rom ? _query_rom->xml() : config); _construct_if(query.has_sub_node("scan"), - _directory_reporter, _env, "directory", "directory"); + _scan_reporter, _env, "scan", "scan"); _construct_if(query.has_sub_node("blueprint"), _blueprint_reporter, _env, "blueprint", "blueprint"); @@ -284,14 +283,12 @@ struct Depot_query::Main Version const version = query.attribute_value("version", Version()); - _gen_versioned_report(_directory_reporter, version, [&] (Xml_generator &xml) { + _gen_versioned_report(_scan_reporter, version, [&] (Xml_generator &xml) { query.for_each_sub_node("scan", [&] (Xml_node node) { - Archive::User const user = node.attribute_value("user", Archive::User()); - Directory::Path path("depot/", user, "/pkg"); - Directory pkg_dir(_root, path); - _scan_depot_user_pkg(user, pkg_dir, xml); - }); - }); + if (node.attribute_value("users", false)) { + _depot_dir.for_each_entry([&] (Directory::Entry const &entry) { + xml.node("user", [&] () { + xml.attribute("name", entry.name()); }); }); } }); }); _gen_versioned_report(_blueprint_reporter, version, [&] (Xml_generator &xml) { query.for_each_sub_node("blueprint", [&] (Xml_node node) { @@ -346,21 +343,6 @@ struct Depot_query::Main }; -void Depot_query::Main::_scan_depot_user_pkg(Archive::User const &user, - Directory const &dir, Xml_generator &xml) -{ - dir.for_each_entry([&] (Directory::Entry const &entry) { - - if (!dir.file_exists(Directory::Path(entry.name(), "/runtime"))) - return; - - Archive::Path const path(user, "/pkg/", entry.name()); - - xml.node("pkg", [&] () { xml.attribute("path", path); }); - }); -} - - Depot_query::Archive::Path Depot_query::Main::_find_rom_in_pkg(Directory::Path const &pkg_path, Rom_label const &rom_label,