Allow presumed MYOPTIONS
This commit is contained in:
parent
469c2493fc
commit
c949a7ca5f
@ -134,6 +134,7 @@ paludis::find_blocker_role_in_annotations(
|
||||
case dsar_myoptions_n_at_least_one:
|
||||
case dsar_myoptions_n_at_most_one:
|
||||
case dsar_myoptions_n_exactly_one:
|
||||
case dsar_myoptions_presumed:
|
||||
case dsar_suggestions_group_name:
|
||||
case dsar_system_implicit:
|
||||
case dsar_licence_last_checked:
|
||||
|
@ -30,6 +30,7 @@ make_enum_DepSpecAnnotationRole()
|
||||
key dsar_myoptions_n_at_least_one "MYOPTIONS, at least one"
|
||||
key dsar_myoptions_n_at_most_one "MYOPTIONS, at most one"
|
||||
key dsar_myoptions_n_exactly_one "MYOPTIONS, exactly one"
|
||||
key dsar_myoptions_presumed "MYOPTIONS, presumed"
|
||||
|
||||
key dsar_suggestions_group_name "Group name for suggestions"
|
||||
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include <paludis/util/indirect_iterator-impl.hh>
|
||||
#include <paludis/util/accept_visitor.hh>
|
||||
#include <paludis/util/upper_lower.hh>
|
||||
#include <paludis/util/destringify.hh>
|
||||
|
||||
#include <paludis/environment.hh>
|
||||
#include <paludis/choice.hh>
|
||||
@ -163,6 +164,19 @@ namespace
|
||||
p->second.insert(std::make_pair(n, MyOptionsInfo{ m_role->value(), false })).first->second.description = m_role->value();
|
||||
else
|
||||
p->second.insert(std::make_pair(n, MyOptionsInfo{ m_role->value(), false }));
|
||||
|
||||
auto n_role(node.spec()->maybe_annotations()->find(dsar_myoptions_presumed));
|
||||
if (n_role != node.spec()->maybe_annotations()->end())
|
||||
{
|
||||
try
|
||||
{
|
||||
p->second.insert(std::make_pair(n, MyOptionsInfo{ "", true })).first->second.presumed = destringify<bool>(n_role->value());
|
||||
}
|
||||
catch (const DestringifyError & e)
|
||||
{
|
||||
Log::get_instance()->message("e.myoptions_key.bad_presumed", ll_warning, lc_context) << "Bad presumed value '" << n_role->value() << "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
p->second.insert(std::make_pair(n, MyOptionsInfo{ "", false }));
|
||||
|
@ -267,6 +267,7 @@ namespace
|
||||
n::myoptions_number_selected_at_least_one() = k.get("annotations_myoptions_number_selected_at_least_one"),
|
||||
n::myoptions_number_selected_at_most_one() = k.get("annotations_myoptions_number_selected_at_most_one"),
|
||||
n::myoptions_number_selected_exactly_one() = k.get("annotations_myoptions_number_selected_exactly_one"),
|
||||
n::myoptions_presumed() = k.get("annotations_myoptions_presumed"),
|
||||
n::myoptions_requires() = k.get("annotations_myoptions_requires"),
|
||||
n::suggestions_group_name() = k.get("annotations_suggesions_group_name"),
|
||||
n::system_implicit() = k.get("annotations_system_implicit")
|
||||
|
@ -162,6 +162,7 @@ namespace paludis
|
||||
typedef Name<struct name_myoptions_number_selected_at_least_one> myoptions_number_selected_at_least_one;
|
||||
typedef Name<struct name_myoptions_number_selected_at_most_one> myoptions_number_selected_at_most_one;
|
||||
typedef Name<struct name_myoptions_number_selected_exactly_one> myoptions_number_selected_exactly_one;
|
||||
typedef Name<struct name_myoptions_presumed> myoptions_presumed;
|
||||
typedef Name<struct name_myoptions_requires> myoptions_requires;
|
||||
typedef Name<struct name_must_not_change_after_source_variables> must_not_change_after_source_variables;
|
||||
typedef Name<struct name_must_not_change_variables> must_not_change_variables;
|
||||
@ -499,6 +500,7 @@ namespace paludis
|
||||
NamedValue<n::myoptions_number_selected_at_least_one, std::string> myoptions_number_selected_at_least_one;
|
||||
NamedValue<n::myoptions_number_selected_at_most_one, std::string> myoptions_number_selected_at_most_one;
|
||||
NamedValue<n::myoptions_number_selected_exactly_one, std::string> myoptions_number_selected_exactly_one;
|
||||
NamedValue<n::myoptions_presumed, std::string> myoptions_presumed;
|
||||
NamedValue<n::myoptions_requires, std::string> myoptions_requires;
|
||||
NamedValue<n::suggestions_group_name, std::string> suggestions_group_name;
|
||||
NamedValue<n::system_implicit, std::string> system_implicit;
|
||||
|
@ -366,6 +366,7 @@ annotations_general_author = author
|
||||
annotations_general_date = date
|
||||
annotations_general_token = token
|
||||
annotations_licence_last_checked = last-checked
|
||||
annotations_myoptions_presumed = presumed
|
||||
annotations_myoptions_requires = requires
|
||||
annotations_myoptions_number_selected = number-selected
|
||||
annotations_myoptions_number_selected_at_least_one = at-least-one
|
||||
|
@ -100,6 +100,13 @@ paludis::erepository::parse_annotations(
|
||||
role = dsar_myoptions_requires;
|
||||
}
|
||||
|
||||
/* myoptions requires */
|
||||
if (dsar_none == role)
|
||||
{
|
||||
if (key == eapi.supported()->annotations()->myoptions_presumed())
|
||||
role = dsar_myoptions_presumed;
|
||||
}
|
||||
|
||||
/* suggestions */
|
||||
if (dsar_none == role)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user