00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */ 00002 00003 /* 00004 * Copyright (c) 2006, 2007, 2009 Ciaran McCreesh 00005 * Copyright (c) 2007 David Leverton 00006 * 00007 * This file is part of the Paludis package manager. Paludis is free software; 00008 * you can redistribute it and/or modify it under the terms of the GNU General 00009 * Public License version 2, as published by the Free Software Foundation. 00010 * 00011 * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY 00012 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00013 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00014 * details. 00015 * 00016 * You should have received a copy of the GNU General Public License along with 00017 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00018 * Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #ifndef PALUDIS_GUARD_SRC_COMMON_ARGS_DEP_LIST_ARGS_HH 00022 #define PALUDIS_GUARD_SRC_COMMON_ARGS_DEP_LIST_ARGS_HH 1 00023 00024 #include <paludis/args/args.hh> 00025 #include <paludis/args/deps_option_arg.hh> 00026 #include <paludis/dep_list.hh> 00027 #include <paludis/install_task.hh> 00028 00029 namespace paludis 00030 { 00031 namespace args 00032 { 00033 /** 00034 * The standard dep command line arguments. 00035 * 00036 * \since 0.26 00037 * \ingroup g_args 00038 * \nosubgrouping 00039 */ 00040 class PALUDIS_VISIBLE DepListArgsGroup : public ArgsGroup 00041 { 00042 public: 00043 /// Constructor. 00044 DepListArgsGroup(ArgsSection *); 00045 00046 /// Destructor 00047 ~DepListArgsGroup(); 00048 00049 /// \name DepList behaviour arguments 00050 /// { 00051 00052 paludis::args::EnumArg dl_reinstall; 00053 paludis::args::EnumArg dl_reinstall_scm; 00054 paludis::args::EnumArg dl_reinstall_targets; 00055 paludis::args::EnumArg dl_upgrade; 00056 paludis::args::EnumArg dl_new_slots; 00057 paludis::args::EnumArg dl_downgrade; 00058 00059 paludis::args::DepsOptionArg dl_deps_default; 00060 00061 paludis::args::DepsOptionArg dl_installed_deps_pre; 00062 paludis::args::DepsOptionArg dl_installed_deps_runtime; 00063 paludis::args::DepsOptionArg dl_installed_deps_post; 00064 00065 paludis::args::DepsOptionArg dl_uninstalled_deps_pre; 00066 paludis::args::DepsOptionArg dl_uninstalled_deps_runtime; 00067 paludis::args::DepsOptionArg dl_uninstalled_deps_post; 00068 paludis::args::DepsOptionArg dl_uninstalled_deps_suggested; 00069 00070 paludis::args::EnumArg dl_suggested; 00071 paludis::args::EnumArg dl_circular; 00072 paludis::args::EnumArg dl_blocks; 00073 paludis::args::StringSetArg dl_override_masks; 00074 00075 paludis::args::EnumArg dl_fall_back; 00076 00077 /// } 00078 00079 /** 00080 * Populate a DepListOptions from our values. 00081 */ 00082 void populate_dep_list_options(const paludis::Environment *, DepListOptions &) const; 00083 00084 /** 00085 * Populate an InstallTask from our values. 00086 */ 00087 void populate_install_task(const paludis::Environment *, InstallTask &) const; 00088 00089 /** 00090 * Fetch a fragment for Environment::paludis_command for our 00091 * values. 00092 */ 00093 std::string paludis_command_fragment() const; 00094 00095 /** 00096 * Fetch a fragment for a resume command for our values. 00097 */ 00098 std::string resume_command_fragment(const InstallTask &) const; 00099 }; 00100 } 00101 } 00102 00103 #endif 00104