core::resolver::Resolved create_resolved_deps()

in include/poac/subcmd/graph.hpp [45:71]


        core::resolver::Resolved create_resolved_deps() {
            namespace lock = core::lock;
            namespace resolver = core::resolver;
            namespace exception = core::exception;
            namespace yaml = io::file::yaml;

            // FIXME: uninstall.hppに同じのがある
            auto node = yaml::load_config();
            std::map<std::string, YAML::Node> deps_node;
            if (const auto deps_map = yaml::get<std::map<std::string, YAML::Node>>(node["deps"])) {
                deps_node = *deps_map;
            }
            else {
                throw exception::error("Could not read deps in poac.yml");
            }

            // create resolved deps
            resolver::Resolved resolved_deps{};
            if (const auto locked_deps = lock::load()) {
                resolved_deps = *locked_deps;
            }
            else { // poac.lock does not exist
                const resolver::Deps deps = _install::resolve_packages(deps_node);
                resolved_deps = resolver::resolve(deps);
            }
            return resolved_deps;
        }