@@ -44,6 +44,15 @@ namespace AppInstaller::CLI
4444 std::vector<Utility::LocIndString> m_params;
4545 };
4646
47+ // Flags to control the behavior of the command output.
48+ enum class CommandOutputFlags : int
49+ {
50+ None = 0x0 ,
51+ IgnoreSettingsWarnings = 0x1 ,
52+ };
53+
54+ DEFINE_ENUM_FLAG_OPERATORS (CommandOutputFlags);
55+
4756 struct Command
4857 {
4958 // Controls the visibility of the field.
@@ -57,17 +66,27 @@ namespace AppInstaller::CLI
5766
5867 Command (std::string_view name, std::string_view parent) :
5968 Command (name, {}, parent) {}
60- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent) :
69+ Command (std::string_view name, std::vector<std::string_view> aliases, std::string_view parent) :
6170 Command (name, aliases, parent, Settings::ExperimentalFeature::Feature::None) {}
62- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent, Command::Visibility visibility) :
71+ Command (std::string_view name, std::string_view parent, CommandOutputFlags outputFlags) :
72+ Command (name, {}, parent, Command::Visibility::Show, Settings::ExperimentalFeature::Feature::None, Settings::TogglePolicy::Policy::None, outputFlags) {}
73+ Command (std::string_view name, std::vector<std::string_view> aliases, std::string_view parent, Command::Visibility visibility) :
6374 Command (name, aliases, parent, visibility, Settings::ExperimentalFeature::Feature::None) {}
64- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent, Settings::ExperimentalFeature::Feature feature) :
75+ Command (std::string_view name, std::vector<std::string_view> aliases, std::string_view parent, Settings::ExperimentalFeature::Feature feature) :
6576 Command (name, aliases, parent, Command::Visibility::Show, feature) {}
66- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent, Settings::TogglePolicy::Policy groupPolicy) :
67- Command (name, aliases, parent, Command::Visibility::Show, Settings::ExperimentalFeature::Feature::None, groupPolicy) {}
68- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent, Command::Visibility visibility, Settings::ExperimentalFeature::Feature feature) :
69- Command (name, aliases, parent, visibility, feature, Settings::TogglePolicy::Policy::None) {}
70- Command (std::string_view name,std::vector<std::string_view> aliases, std::string_view parent, Command::Visibility visibility, Settings::ExperimentalFeature::Feature feature, Settings::TogglePolicy::Policy groupPolicy);
77+ Command (std::string_view name, std::vector<std::string_view> aliases, std::string_view parent, Settings::TogglePolicy::Policy groupPolicy) :
78+ Command (name, aliases, parent, Command::Visibility::Show, Settings::ExperimentalFeature::Feature::None, groupPolicy, CommandOutputFlags::None) {}
79+ Command (std::string_view name, std::vector<std::string_view> aliases, std::string_view parent, Command::Visibility visibility, Settings::ExperimentalFeature::Feature feature) :
80+ Command (name, aliases, parent, visibility, feature, Settings::TogglePolicy::Policy::None, CommandOutputFlags::None) {}
81+
82+ Command (std::string_view name,
83+ std::vector<std::string_view> aliases,
84+ std::string_view parent,
85+ Command::Visibility visibility,
86+ Settings::ExperimentalFeature::Feature feature,
87+ Settings::TogglePolicy::Policy groupPolicy,
88+ CommandOutputFlags outputFlags);
89+
7190 virtual ~Command () = default ;
7291
7392 Command (const Command&) = default ;
@@ -85,6 +104,7 @@ namespace AppInstaller::CLI
85104 Command::Visibility GetVisibility () const ;
86105 Settings::ExperimentalFeature::Feature Feature () const { return m_feature; }
87106 Settings::TogglePolicy::Policy GroupPolicy () const { return m_groupPolicy; }
107+ CommandOutputFlags GetOutputFlags () const { return m_outputFlags; }
88108
89109 virtual std::vector<std::unique_ptr<Command>> GetCommands () const { return {}; }
90110 virtual std::vector<Argument> GetArguments () const { return {}; }
@@ -118,6 +138,7 @@ namespace AppInstaller::CLI
118138 Command::Visibility m_visibility;
119139 Settings::ExperimentalFeature::Feature m_feature;
120140 Settings::TogglePolicy::Policy m_groupPolicy;
141+ CommandOutputFlags m_outputFlags;
121142 };
122143
123144 template <typename Container>
0 commit comments