From c991239088a11bb3d98a792569b6da5da06393da Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Mon, 30 Nov 2020 07:07:20 -0500 Subject: [PATCH] merged task_conf_holder into conf_task, redundant moved make_git() and make_git_url() into task for now --- src/core/conf.h | 15 ++++ src/tasks/boost_di.cpp | 4 +- src/tasks/gtest.cpp | 4 +- src/tasks/installer.cpp | 4 +- src/tasks/libffi.cpp | 4 +- src/tasks/lz4.cpp | 4 +- src/tasks/modorganizer.cpp | 4 +- src/tasks/ncc.cpp | 4 +- src/tasks/nmm.cpp | 4 +- src/tasks/python.cpp | 4 +- src/tasks/spdlog.cpp | 4 +- src/tasks/task.cpp | 139 +++++++++---------------------------- src/tasks/task.h | 38 ++-------- src/tasks/usvfs.cpp | 4 +- 14 files changed, 75 insertions(+), 161 deletions(-) diff --git a/src/core/conf.h b/src/core/conf.h index a91d069..0dd82b7 100644 --- a/src/core/conf.h +++ b/src/core/conf.h @@ -129,6 +129,21 @@ public: return get_bool(key); } + std::string mo_org() const { return get("mo_org"); } + std::string mo_branch() const { return get("mo_branch"); } + bool no_pull() const { return get("no_pull"); } + bool revert_ts() const { return get("revert_ts"); } + bool ignore_ts()const { return get("ignore_ts"); } + std::string git_url_prefix() const { return get("git_url_prefix"); } + bool git_shallow() const { return get("git_shallow"); } + std::string git_user() const { return get("git_username"); } + std::string git_email() const { return get("git_email"); } + bool set_origin_remote() const { return get("set_origin_remote"); } + std::string remote_org() const { return get("remote_org"); } + std::string remote_key() const { return get("remote_key"); } + bool remote_no_push_upstream() const { return get("remote_no_push_upstream"); } + bool remote_push_default_origin() const { return get("remote_push_default_origin"); } + private: std::vector names_; diff --git a/src/tasks/boost_di.cpp b/src/tasks/boost_di.cpp index c4be47a..c9e488b 100644 --- a/src/tasks/boost_di.cpp +++ b/src/tasks/boost_di.cpp @@ -35,8 +35,8 @@ void boost_di::do_clean(clean c) void boost_di::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("boost-experimental", "di")) + run_tool(make_git() + .url(make_git_url("boost-experimental", "di")) .branch("cpp14") .root(source_path())); } diff --git a/src/tasks/gtest.cpp b/src/tasks/gtest.cpp index 6b6019e..40dc374 100644 --- a/src/tasks/gtest.cpp +++ b/src/tasks/gtest.cpp @@ -47,8 +47,8 @@ void gtest::do_clean(clean c) void gtest::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("google", "googletest")) + run_tool(make_git() + .url(make_git_url("google", "googletest")) .branch(version()) .root(source_path())); } diff --git a/src/tasks/installer.cpp b/src/tasks/installer.cpp index 3cbac98..985a139 100644 --- a/src/tasks/installer.cpp +++ b/src/tasks/installer.cpp @@ -37,8 +37,8 @@ void installer::do_fetch() { const std::string repo = "modorganizer-Installer"; - run_tool(task_conf().make_git() - .url(task_conf().make_git_url(task_conf().mo_org(), repo)) + run_tool(make_git() + .url(make_git_url(task_conf().mo_org(), repo)) .branch(task_conf().mo_branch()) .root(source_path())); } diff --git a/src/tasks/libffi.cpp b/src/tasks/libffi.cpp index 3cf853c..b3748c4 100644 --- a/src/tasks/libffi.cpp +++ b/src/tasks/libffi.cpp @@ -35,8 +35,8 @@ void libffi::do_clean(clean c) void libffi::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("python","cpython-bin-deps")) + run_tool(make_git() + .url(make_git_url("python","cpython-bin-deps")) .branch("libffi") .root(source_path())); } diff --git a/src/tasks/lz4.cpp b/src/tasks/lz4.cpp index 276a9a7..a5c76ec 100644 --- a/src/tasks/lz4.cpp +++ b/src/tasks/lz4.cpp @@ -91,8 +91,8 @@ void lz4::build_and_install_prebuilt() void lz4::fetch_from_source() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("lz4","lz4")) + run_tool(make_git() + .url(make_git_url("lz4","lz4")) .branch(version()) .root(source_path())); diff --git a/src/tasks/modorganizer.cpp b/src/tasks/modorganizer.cpp index 9f123d5..9ff9c8b 100644 --- a/src/tasks/modorganizer.cpp +++ b/src/tasks/modorganizer.cpp @@ -82,7 +82,7 @@ fs::path modorganizer::super_path() url modorganizer::git_url() const { - return task_conf().make_git_url(task_conf().mo_org(), repo_); + return make_git_url(task_conf().mo_org(), repo_); } std::string modorganizer::org() const @@ -114,7 +114,7 @@ void modorganizer::do_fetch() { initialize_super(super_path()); - run_tool(task_conf().make_git() + run_tool(make_git() .url(git_url()) .branch(task_conf().mo_branch()) .root(this_source_path())); diff --git a/src/tasks/ncc.cpp b/src/tasks/ncc.cpp index 87a8ba0..cb831ad 100644 --- a/src/tasks/ncc.cpp +++ b/src/tasks/ncc.cpp @@ -39,8 +39,8 @@ void ncc::do_clean(clean c) void ncc::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url(task_conf().mo_org(), "modorganizer-NCC")) + run_tool(make_git() + .url(make_git_url(task_conf().mo_org(), "modorganizer-NCC")) .branch(task_conf().mo_branch()) .root(source_path())); } diff --git a/src/tasks/nmm.cpp b/src/tasks/nmm.cpp index d8af74d..102f275 100644 --- a/src/tasks/nmm.cpp +++ b/src/tasks/nmm.cpp @@ -38,8 +38,8 @@ void nmm::do_clean(clean c) void nmm::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("Nexus-Mods", "Nexus-Mod-Manager")) + run_tool(make_git() + .url(make_git_url("Nexus-Mods", "Nexus-Mod-Manager")) .branch(version()) .root(source_path())); diff --git a/src/tasks/python.cpp b/src/tasks/python.cpp index f1a920a..cf7ea19 100644 --- a/src/tasks/python.cpp +++ b/src/tasks/python.cpp @@ -128,8 +128,8 @@ void python::build_and_install_prebuilt() void python::fetch_from_source() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("python", "cpython")) + run_tool(make_git() + .url(make_git_url("python", "cpython")) .branch(version()) .root(source_path())); diff --git a/src/tasks/spdlog.cpp b/src/tasks/spdlog.cpp index 41afab3..91af306 100644 --- a/src/tasks/spdlog.cpp +++ b/src/tasks/spdlog.cpp @@ -32,8 +32,8 @@ void spdlog::do_clean(clean c) void spdlog::do_fetch() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url("gabime", "spdlog")) + run_tool(make_git() + .url(make_git_url("gabime", "spdlog")) .branch(version()) .root(source_path())); } diff --git a/src/tasks/task.cpp b/src/tasks/task.cpp index dc02d2f..c43118c 100644 --- a/src/tasks/task.cpp +++ b/src/tasks/task.cpp @@ -52,111 +52,6 @@ struct task::thread_context }; -task_conf_holder::task_conf_holder(const task& t) - : task_(t) -{ -} - -std::string task_conf_holder::mo_org() const -{ - return conf().task(task_.names()).get("mo_org"); -} - -std::string task_conf_holder::mo_branch() const -{ - return conf().task(task_.names()).get("mo_branch"); -} - -bool task_conf_holder::no_pull() const -{ - return conf().task(task_.names()).get("no_pull"); -} - -bool task_conf_holder::revert_ts() const -{ - return conf().task(task_.names()).get("revert_ts"); -} - -bool task_conf_holder::ignore_ts()const -{ - return conf().task(task_.names()).get("ignore_ts"); -} - -std::string task_conf_holder::git_url_prefix() const -{ - return conf().task(task_.names()).get("git_url_prefix"); -} - -bool task_conf_holder::git_shallow() const -{ - return conf().task(task_.names()).get("git_shallow"); -} - -std::string task_conf_holder::git_user() const -{ - return conf().task(task_.names()).get("git_username"); -} - -std::string task_conf_holder::git_email() const -{ - return conf().task(task_.names()).get("git_email"); -} - -bool task_conf_holder::set_origin_remote() const -{ - return conf().task(task_.names()).get("set_origin_remote"); -} - -std::string task_conf_holder::remote_org() const -{ - return conf().task(task_.names()).get("remote_org"); -} - -std::string task_conf_holder::remote_key() const -{ - return conf().task(task_.names()).get("remote_key"); -} - -bool task_conf_holder::remote_no_push_upstream() const -{ - return conf().task(task_.names()).get("remote_no_push_upstream"); -} - -bool task_conf_holder::remote_push_default_origin() const -{ - return conf().task(task_.names()).get("remote_push_default_origin"); -} - -git task_conf_holder::make_git(git::ops o) const -{ - if (o == git::clone_or_pull && no_pull()) - o = git::clone; - - git g(o); - - g.ignore_ts_on_clone(ignore_ts()); - g.revert_ts_on_pull(revert_ts()); - g.credentials(git_user(), git_email()); - g.shallow(git_shallow()); - - if (set_origin_remote()) - { - g.remote( - remote_org(), remote_key(), - remote_no_push_upstream(), - remote_push_default_origin()); - } - - return g; -} - -std::string task_conf_holder::make_git_url( - const std::string& org, const std::string& repo) const -{ - return git_url_prefix() + org + "/" + repo + ".git"; -} - - task::task(std::vector names) : names_(std::move(names)), interrupted_(false) { @@ -302,9 +197,39 @@ void task::parallel(std::vector>> t.join(); } -task_conf_holder task::task_conf() const +conf_task task::task_conf() const { - return task_conf_holder(*this); + return conf().task(names()); +} + +git task::make_git(git::ops o) const +{ + if (o == git::clone_or_pull && task_conf().no_pull()) + o = git::clone; + + git g(o); + + g.ignore_ts_on_clone(task_conf().ignore_ts()); + g.revert_ts_on_pull(task_conf().revert_ts()); + g.credentials(task_conf().git_user(), task_conf().git_email()); + g.shallow(task_conf().git_shallow()); + + if (task_conf().set_origin_remote()) + { + g.remote( + task_conf().remote_org(), + task_conf().remote_key(), + task_conf().remote_no_push_upstream(), + task_conf().remote_push_default_origin()); + } + + return g; +} + +std::string task::make_git_url( + const std::string& org, const std::string& repo) const +{ + return task_conf().git_url_prefix() + org + "/" + repo + ".git"; } void task::run() diff --git a/src/tasks/task.h b/src/tasks/task.h index 9fda435..e3b51e5 100644 --- a/src/tasks/task.h +++ b/src/tasks/task.h @@ -10,37 +10,6 @@ namespace mob class task; class tool; - -class task_conf_holder -{ -public: - task_conf_holder(const task& t); - - std::string mo_org() const; - std::string mo_branch() const; - bool no_pull() const; - bool revert_ts() const; - bool ignore_ts()const; - std::string git_url_prefix() const; - bool git_shallow() const; - std::string git_user() const; - std::string git_email() const; - bool set_origin_remote() const; - std::string remote_org() const; - std::string remote_key() const; - bool remote_no_push_upstream() const; - bool remote_push_default_origin() const; - - git make_git(git::ops o=git::clone_or_pull) const; - - std::string make_git_url( - const std::string& org, const std::string& repo) const; - -private: - const task& task_; -}; - - class task { public: @@ -108,7 +77,12 @@ protected: void threaded_run(std::string name, std::function f); void parallel(std::vector>> v); - task_conf_holder task_conf() const; + conf_task task_conf() const; + + git make_git(git::ops o=git::clone_or_pull) const; + + std::string make_git_url( + const std::string& org, const std::string& repo) const; private: struct thread_context; diff --git a/src/tasks/usvfs.cpp b/src/tasks/usvfs.cpp index 07cb719..f903beb 100644 --- a/src/tasks/usvfs.cpp +++ b/src/tasks/usvfs.cpp @@ -94,8 +94,8 @@ void usvfs::build_and_install_prebuilt() void usvfs::fetch_from_source() { - run_tool(task_conf().make_git() - .url(task_conf().make_git_url(task_conf().mo_org(), "usvfs")) + run_tool(make_git() + .url(make_git_url(task_conf().mo_org(), "usvfs")) .branch(version()) .root(source_path())); }