/* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* * Copyright (c) 2007 David Leverton * * This file is part of the Paludis package manager. Paludis is free software; * you can redistribute it and/or modify it under the terms of the GNU General * Public License version 2, as published by the Free Software Foundation. * * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include using namespace paludis; namespace { HookResult so_hook_run(const Environment *, const Hook &) { return make_named_values(n::max_exit_status() = 6, n::output() = ""); } HookResult so_hook_output_run(const Environment *, const Hook &) { return make_named_values(n::max_exit_status() = 0, n::output() = "foo"); } HookResult ordering_run(const Environment *, const Hook &) { SafeOFStream f(FSPath("hooker_TEST_dir/ordering.out"), O_CREAT | O_WRONLY | O_APPEND, false); f << "sohook" << std::endl; return make_named_values(n::max_exit_status() = 0, n::output() = ""); } void ordering_add_dependencies(const Environment *, const Hook &, DirectedGraph & graph) { graph.add_edge("k", "libpaludissohooks_TEST", 0); } } extern "C" HookResult paludis_hook_run_3(const Environment * env, const Hook & hook, const std::shared_ptr &) { if ("so_hook" == hook.name()) return so_hook_run(env, hook); if ("so_hook_output" == hook.name()) return so_hook_output_run(env, hook); if ("ordering" == hook.name()) return ordering_run(env, hook); return make_named_values(n::max_exit_status() = 0, n::output() = ""); } extern "C" void paludis_hook_add_dependencies(const Environment * env, const Hook & hook, DirectedGraph & graph) { if ("ordering" == hook.name()) ordering_add_dependencies(env, hook, graph); }