aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-02-19 21:53:38 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-02-19 21:53:38 +0000
commit5181afb3ebcda4bdcd4cb40c4ebcc6857b67aa59 (patch)
tree8800a098880920e55dc894b6ef1db0e4b5855069
parent43066c1892e7978f3d591278c9b8896fa8214f4a (diff)
downloadpaludis-5181afb3ebcda4bdcd4cb40c4ebcc6857b67aa59.tar.gz
paludis-5181afb3ebcda4bdcd4cb40c4ebcc6857b67aa59.tar.xz
ClientOutputFeatures
Which will allow us to implement things like elog at end only for clients that display a summary table.
-rw-r--r--paludis/create_output_manager_info-fwd.hh5
-rw-r--r--paludis/create_output_manager_info.cc47
-rw-r--r--paludis/create_output_manager_info.hh27
-rw-r--r--paludis/create_output_manager_info.se20
-rw-r--r--paludis/install_task.cc11
-rw-r--r--paludis/ipc_output_manager.cc12
-rw-r--r--paludis/ipc_output_manager.hh3
-rw-r--r--paludis/output_manager_from_environment.cc18
-rw-r--r--paludis/output_manager_from_environment.hh5
-rw-r--r--paludis/sync_task.cc2
-rw-r--r--paludis/uninstall_task.cc5
-rw-r--r--src/clients/accerso/accerso.cc4
-rw-r--r--src/clients/cave/cmd_perform.cc6
-rw-r--r--src/clients/cave/cmd_sync.cc3
-rw-r--r--src/clients/paludis/do_config.cc4
-rw-r--r--src/clients/paludis/info.cc4
-rw-r--r--src/output/console_install_task.cc3
17 files changed, 132 insertions, 47 deletions
diff --git a/paludis/create_output_manager_info-fwd.hh b/paludis/create_output_manager_info-fwd.hh
index ca25778..eb2c6e7 100644
--- a/paludis/create_output_manager_info-fwd.hh
+++ b/paludis/create_output_manager_info-fwd.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* 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
@@ -21,6 +21,7 @@
#define PALUDIS_GUARD_PALUDIS_CREATE_OUTPUT_MANAGER_INFO_FWD_HH 1
#include <paludis/util/attributes.hh>
+#include <paludis/util/options-fwd.hh>
#include <iosfwd>
namespace paludis
@@ -31,6 +32,8 @@ namespace paludis
#include <paludis/create_output_manager_info-se.hh>
+ typedef Options<ClientOutputFeature> ClientOutputFeatures;
+
}
#endif
diff --git a/paludis/create_output_manager_info.cc b/paludis/create_output_manager_info.cc
index 46fa0f3..b37f6e7 100644
--- a/paludis/create_output_manager_info.cc
+++ b/paludis/create_output_manager_info.cc
@@ -91,15 +91,18 @@ namespace paludis
const std::string action_name;
const std::tr1::shared_ptr<const Set<std::string> > action_flags;
const OutputExclusivity output_exclusivity;
+ const ClientOutputFeatures client_output_features;
Implementation(const std::tr1::shared_ptr<const PackageID> & i,
const std::string & a,
const std::tr1::shared_ptr<const Set<std::string> > & f,
- const OutputExclusivity e) :
+ const OutputExclusivity e,
+ const ClientOutputFeatures & c) :
id(i),
action_name(a),
action_flags(f),
- output_exclusivity(e)
+ output_exclusivity(e),
+ client_output_features(c)
{
}
};
@@ -109,10 +112,12 @@ namespace paludis
{
const RepositoryName repo_name;
const OutputExclusivity output_exclusivity;
+ const ClientOutputFeatures client_output_features;
- Implementation(const RepositoryName & r, const OutputExclusivity e) :
+ Implementation(const RepositoryName & r, const OutputExclusivity e, const ClientOutputFeatures & c) :
repo_name(r),
- output_exclusivity(e)
+ output_exclusivity(e),
+ client_output_features(c)
{
}
};
@@ -132,10 +137,11 @@ CreateOutputManagerInfo::deserialise(Deserialisation & d)
CreateOutputManagerForPackageIDActionInfo::CreateOutputManagerForPackageIDActionInfo(
const std::tr1::shared_ptr<const PackageID> & i,
const Action & a,
- const OutputExclusivity e) :
+ const OutputExclusivity e,
+ const ClientOutputFeatures & c) :
PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(
new Implementation<CreateOutputManagerForPackageIDActionInfo>(i, a.simple_name(),
- get_flags(a), e))
+ get_flags(a), e, c))
{
}
@@ -143,9 +149,10 @@ CreateOutputManagerForPackageIDActionInfo::CreateOutputManagerForPackageIDAction
const std::tr1::shared_ptr<const PackageID> & i,
const std::string & a,
const std::tr1::shared_ptr<const Set<std::string> > & f,
- const OutputExclusivity e) :
+ const OutputExclusivity e,
+ const ClientOutputFeatures & c) :
PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(
- new Implementation<CreateOutputManagerForPackageIDActionInfo>(i, a, f, e))
+ new Implementation<CreateOutputManagerForPackageIDActionInfo>(i, a, f, e, c))
{
}
@@ -177,6 +184,12 @@ CreateOutputManagerForPackageIDActionInfo::output_exclusivity() const
return _imp->output_exclusivity;
}
+const ClientOutputFeatures
+CreateOutputManagerForPackageIDActionInfo::client_output_features() const
+{
+ return _imp->client_output_features;
+}
+
void
CreateOutputManagerForPackageIDActionInfo::serialise(Serialiser & s) const
{
@@ -185,6 +198,7 @@ CreateOutputManagerForPackageIDActionInfo::serialise(Serialiser & s) const
.member(SerialiserFlags<>(), "action_name", action_name())
.member(SerialiserFlags<>(), "output_exclusivity", stringify(output_exclusivity()))
.member(SerialiserFlags<serialise::might_be_null>(), "package_id", package_id())
+ .member(SerialiserFlags<>(), "client_output_features", client_output_features())
;
}
@@ -202,14 +216,15 @@ CreateOutputManagerForPackageIDActionInfo::deserialise(Deserialisation & d)
v.member<std::tr1::shared_ptr<const PackageID> >("package_id"),
v.member<std::string>("action_name"),
action_flags,
- destringify<OutputExclusivity>(v.member<std::string>("output_exclusivity"))
+ destringify<OutputExclusivity>(v.member<std::string>("output_exclusivity")),
+ v.member<ClientOutputFeatures>("client_output_features")
));
}
CreateOutputManagerForRepositorySyncInfo::CreateOutputManagerForRepositorySyncInfo(
- const RepositoryName & r, const OutputExclusivity e) :
+ const RepositoryName & r, const OutputExclusivity e, const ClientOutputFeatures & c) :
PrivateImplementationPattern<CreateOutputManagerForRepositorySyncInfo>(
- new Implementation<CreateOutputManagerForRepositorySyncInfo>(r, e))
+ new Implementation<CreateOutputManagerForRepositorySyncInfo>(r, e, c))
{
}
@@ -229,12 +244,19 @@ CreateOutputManagerForRepositorySyncInfo::output_exclusivity() const
return _imp->output_exclusivity;
}
+const ClientOutputFeatures
+CreateOutputManagerForRepositorySyncInfo::client_output_features() const
+{
+ return _imp->client_output_features;
+}
+
void
CreateOutputManagerForRepositorySyncInfo::serialise(Serialiser & s) const
{
s.object("CreateOutputManagerForRepositorySyncInfo")
.member(SerialiserFlags<>(), "repository_name", stringify(repository_name()))
.member(SerialiserFlags<>(), "output_exclusivity", stringify(output_exclusivity()))
+ .member(SerialiserFlags<>(), "client_output_features", client_output_features())
;
}
@@ -244,7 +266,8 @@ CreateOutputManagerForRepositorySyncInfo::deserialise(Deserialisation & d)
Deserialisator v(d, "CreateOutputManagerForRepositorySyncInfo");
return make_shared_ptr(new CreateOutputManagerForRepositorySyncInfo(
RepositoryName(v.member<std::string>("repo_name")),
- destringify<OutputExclusivity>(v.member<std::string>("output_exclusivity"))
+ destringify<OutputExclusivity>(v.member<std::string>("output_exclusivity")),
+ v.member<ClientOutputFeatures>("client_output_features")
));
}
diff --git a/paludis/create_output_manager_info.hh b/paludis/create_output_manager_info.hh
index ac10c7e..1592008 100644
--- a/paludis/create_output_manager_info.hh
+++ b/paludis/create_output_manager_info.hh
@@ -68,18 +68,23 @@ namespace paludis
{
public:
/**
- * \since 0.44
+ * \since 0.46
*/
CreateOutputManagerForPackageIDActionInfo(
const std::tr1::shared_ptr<const PackageID> & id,
const std::string & action_name,
const std::tr1::shared_ptr<const Set<std::string> > & action_flags,
- const OutputExclusivity output_exclusivity);
+ const OutputExclusivity output_exclusivity,
+ const ClientOutputFeatures & output_features);
+ /**
+ * \since 0.46
+ */
CreateOutputManagerForPackageIDActionInfo(
const std::tr1::shared_ptr<const PackageID> & id,
const Action &,
- const OutputExclusivity output_exclusivity);
+ const OutputExclusivity output_exclusivity,
+ const ClientOutputFeatures & output_features);
~CreateOutputManagerForPackageIDActionInfo();
@@ -97,6 +102,11 @@ namespace paludis
OutputExclusivity output_exclusivity() const PALUDIS_ATTRIBUTE((warn_unused_result));
+ /**
+ * \since 0.46
+ */
+ const ClientOutputFeatures client_output_features() const PALUDIS_ATTRIBUTE((warn_unused_result));
+
virtual void serialise(Serialiser &) const;
static const std::tr1::shared_ptr<CreateOutputManagerForPackageIDActionInfo> deserialise(
@@ -117,9 +127,13 @@ namespace paludis
public ImplementAcceptMethods<CreateOutputManagerInfo, CreateOutputManagerForRepositorySyncInfo>
{
public:
+ /**
+ * \since 0.46
+ */
CreateOutputManagerForRepositorySyncInfo(
const RepositoryName & repo_name,
- const OutputExclusivity);
+ const OutputExclusivity,
+ const ClientOutputFeatures &);
~CreateOutputManagerForRepositorySyncInfo();
@@ -130,6 +144,11 @@ namespace paludis
OutputExclusivity output_exclusivity() const PALUDIS_ATTRIBUTE((warn_unused_result));
+ /**
+ * \since 0.46
+ */
+ const ClientOutputFeatures client_output_features() const PALUDIS_ATTRIBUTE((warn_unused_result));
+
virtual void serialise(Serialiser &) const;
static const std::tr1::shared_ptr<CreateOutputManagerForRepositorySyncInfo> deserialise(
diff --git a/paludis/create_output_manager_info.se b/paludis/create_output_manager_info.se
index 7a51cde..1abc73f 100644
--- a/paludis/create_output_manager_info.se
+++ b/paludis/create_output_manager_info.se
@@ -21,3 +21,23 @@ make_enum_OutputExclusivity()
END
}
+make_enum_ClientOutputFeature()
+{
+ prefix cof
+
+ key cof_summary_at_end "Set if the client shows a summary at the end"
+
+ want_destringify
+
+ doxygen_comment << "END"
+ /**
+ * Options telling most CreateOutputManagerInfo subclasses what features our
+ * client supports, allowing environments to decide how to handle output
+ * managers.
+ *
+ * \see CreateOutputManagerInfo
+ * \see ClientOutputFeatures
+ */
+END
+}
+
diff --git a/paludis/install_task.cc b/paludis/install_task.cc
index 22dd336..8862669 100644
--- a/paludis/install_task.cc
+++ b/paludis/install_task.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* 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
@@ -740,7 +740,8 @@ InstallTask::_pretend()
{
on_pretend_pre(*dep);
- OutputManagerFromEnvironment output_manager_holder(_imp->env, dep->package_id(), oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(_imp->env, dep->package_id(), oe_exclusive,
+ ClientOutputFeatures());
bool success(true);
if (dep->package_id()->supports_action(pretend_action_query))
@@ -886,7 +887,8 @@ InstallTask::_one(const DepList::Iterator dep, const int x, const int y, const i
SupportsActionTest<FetchAction> test_fetch;
if (dep->package_id()->supports_action(test_fetch))
{
- output_manager_holder.reset(new OutputManagerFromEnvironment(_imp->env, dep->package_id(), oe_exclusive));
+ output_manager_holder.reset(new OutputManagerFromEnvironment(_imp->env, dep->package_id(), oe_exclusive,
+ ClientOutputFeatures()));
FetchActionOptions fetch_options(make_fetch_action_options(*dep, *output_manager_holder));
FetchAction fetch_action(fetch_options);
dep->package_id()->perform_action(fetch_action);
@@ -898,7 +900,8 @@ InstallTask::_one(const DepList::Iterator dep, const int x, const int y, const i
if (! _imp->fetch_only)
{
- output_manager_holder.reset(new OutputManagerFromEnvironment(_imp->env, dep->package_id(), oe_exclusive));
+ output_manager_holder.reset(new OutputManagerFromEnvironment(_imp->env, dep->package_id(),
+ oe_exclusive, ClientOutputFeatures()));
std::tr1::shared_ptr<PackageIDSequence> replacing;
diff --git a/paludis/ipc_output_manager.cc b/paludis/ipc_output_manager.cc
index 907cb0e..a598159 100644
--- a/paludis/ipc_output_manager.cc
+++ b/paludis/ipc_output_manager.cc
@@ -36,6 +36,7 @@
#include <paludis/util/thread.hh>
#include <paludis/util/pipe.hh>
#include <paludis/util/mutex.hh>
+#include <paludis/util/options.hh>
#include <paludis/standard_output_manager.hh>
#include <paludis/create_output_manager_info.hh>
#include <paludis/serialise.hh>
@@ -369,16 +370,18 @@ namespace paludis
const Environment * const env;
const std::tr1::shared_ptr<const PackageID> id;
const OutputExclusivity exclusivity;
+ const ClientOutputFeatures client_output_features;
int read_fd, write_fd;
std::tr1::shared_ptr<OutputManager> result;
Implementation(const Environment * const e, const std::tr1::shared_ptr<const PackageID> & i,
- const OutputExclusivity x) :
+ const OutputExclusivity x, const ClientOutputFeatures & c) :
env(e),
id(i),
exclusivity(x),
+ client_output_features(c),
read_fd(destringify<int>(getenv_with_default("PALUDIS_IPC_READ_FD", "-1"))),
write_fd(destringify<int>(getenv_with_default("PALUDIS_IPC_WRITE_FD", "-1")))
{
@@ -397,8 +400,9 @@ namespace paludis
OutputManagerFromIPC::OutputManagerFromIPC(const Environment * const e,
const std::tr1::shared_ptr<const PackageID> & i,
- const OutputExclusivity x) :
- PrivateImplementationPattern<OutputManagerFromIPC>(new Implementation<OutputManagerFromIPC>(e, i, x))
+ const OutputExclusivity x,
+ const ClientOutputFeatures & c) :
+ PrivateImplementationPattern<OutputManagerFromIPC>(new Implementation<OutputManagerFromIPC>(e, i, x, c))
{
}
@@ -411,7 +415,7 @@ OutputManagerFromIPC::operator() (const Action & a)
{
if (! _imp->result)
{
- CreateOutputManagerForPackageIDActionInfo info(_imp->id, a, _imp->exclusivity);
+ CreateOutputManagerForPackageIDActionInfo info(_imp->id, a, _imp->exclusivity, _imp->client_output_features);
_imp->result.reset(new IPCOutputManager(_imp->read_fd, _imp->write_fd, info));
}
return _imp->result;
diff --git a/paludis/ipc_output_manager.hh b/paludis/ipc_output_manager.hh
index 255b362..f3ff59f 100644
--- a/paludis/ipc_output_manager.hh
+++ b/paludis/ipc_output_manager.hh
@@ -94,7 +94,8 @@ namespace paludis
OutputManagerFromIPC(
const Environment * const,
const std::tr1::shared_ptr<const PackageID> &,
- const OutputExclusivity
+ const OutputExclusivity,
+ const ClientOutputFeatures &
);
~OutputManagerFromIPC();
diff --git a/paludis/output_manager_from_environment.cc b/paludis/output_manager_from_environment.cc
index 2d98f25..43c9c29 100644
--- a/paludis/output_manager_from_environment.cc
+++ b/paludis/output_manager_from_environment.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* 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
@@ -20,6 +20,7 @@
#include <paludis/output_manager_from_environment.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/log.hh>
+#include <paludis/util/options.hh>
#include <paludis/environment.hh>
#include <paludis/create_output_manager_info.hh>
#include <paludis/standard_output_manager.hh>
@@ -34,14 +35,16 @@ namespace paludis
const Environment * const env;
const std::tr1::shared_ptr<const PackageID> id;
const OutputExclusivity output_exclusivity;
+ const ClientOutputFeatures client_output_features;
std::tr1::shared_ptr<OutputManager> result;
Implementation(const Environment * const e, const std::tr1::shared_ptr<const PackageID> & i,
- const OutputExclusivity x) :
+ const OutputExclusivity x, const ClientOutputFeatures & c) :
env(e),
id(i),
- output_exclusivity(x)
+ output_exclusivity(x),
+ client_output_features(c)
{
}
};
@@ -50,8 +53,10 @@ namespace paludis
OutputManagerFromEnvironment::OutputManagerFromEnvironment(
const Environment * const e,
const std::tr1::shared_ptr<const PackageID> & i,
- const OutputExclusivity x) :
- PrivateImplementationPattern<OutputManagerFromEnvironment>(new Implementation<OutputManagerFromEnvironment>(e, i, x))
+ const OutputExclusivity x,
+ const ClientOutputFeatures & c) :
+ PrivateImplementationPattern<OutputManagerFromEnvironment>(new Implementation<OutputManagerFromEnvironment>(
+ e, i, x, c))
{
}
@@ -64,7 +69,8 @@ OutputManagerFromEnvironment::operator() (const Action & a)
{
if (! _imp->result)
{
- CreateOutputManagerForPackageIDActionInfo info(_imp->id, a, _imp->output_exclusivity);
+ CreateOutputManagerForPackageIDActionInfo info(_imp->id, a, _imp->output_exclusivity,
+ _imp->client_output_features);
_imp->result = _imp->env->create_output_manager(info);
}
return _imp->result;
diff --git a/paludis/output_manager_from_environment.hh b/paludis/output_manager_from_environment.hh
index e4682d8..e45127b 100644
--- a/paludis/output_manager_from_environment.hh
+++ b/paludis/output_manager_from_environment.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* 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
@@ -38,7 +38,8 @@ namespace paludis
OutputManagerFromEnvironment(
const Environment * const,
const std::tr1::shared_ptr<const PackageID> &,
- const OutputExclusivity);
+ const OutputExclusivity,
+ const ClientOutputFeatures &);
~OutputManagerFromEnvironment();
diff --git a/paludis/sync_task.cc b/paludis/sync_task.cc
index 17aebee..2113d07 100644
--- a/paludis/sync_task.cc
+++ b/paludis/sync_task.cc
@@ -119,7 +119,7 @@ namespace
}
std::tr1::shared_ptr<const Repository> rr(env->package_database()->fetch_repository(r));
- CreateOutputManagerForRepositorySyncInfo info(rr->name(), oe_exclusive);
+ CreateOutputManagerForRepositorySyncInfo info(rr->name(), oe_exclusive, ClientOutputFeatures());
std::tr1::shared_ptr<OutputManager> output_manager(env->create_output_manager(info));
if (rr->sync(output_manager))
{
diff --git a/paludis/uninstall_task.cc b/paludis/uninstall_task.cc
index e38a63c..d60371e 100644
--- a/paludis/uninstall_task.cc
+++ b/paludis/uninstall_task.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* 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
@@ -378,7 +378,8 @@ UninstallTask::execute()
try
{
- OutputManagerFromEnvironment output_manager_holder(_imp->env, i->package_id(), oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(_imp->env, i->package_id(), oe_exclusive,
+ ClientOutputFeatures());
UninstallAction uninstall_action(
make_named_values<UninstallActionOptions>(
value_for<n::config_protect>(""),
diff --git a/src/clients/accerso/accerso.cc b/src/clients/accerso/accerso.cc
index bfa221c..a285e89 100644
--- a/src/clients/accerso/accerso.cc
+++ b/src/clients/accerso/accerso.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* 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
@@ -141,7 +141,7 @@ main(int argc, char *argv[])
cout << "Processing " << colour(cl_package_name, stringify(**i)) << "..." << endl;
++total;
- OutputManagerFromEnvironment output_manager_holder(&env, *i, oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(&env, *i, oe_exclusive, ClientOutputFeatures());
FetchAction a(make_named_values<FetchActionOptions>(
value_for<n::errors>(make_shared_ptr(new Sequence<FetchActionFailure>)),
value_for<n::exclude_unmirrorable>(true),
diff --git a/src/clients/cave/cmd_perform.cc b/src/clients/cave/cmd_perform.cc
index 1ece0bb..9b2338a 100644
--- a/src/clients/cave/cmd_perform.cc
+++ b/src/clients/cave/cmd_perform.cc
@@ -169,9 +169,11 @@ namespace
const std::tr1::shared_ptr<const PackageID> & id)
{
if (cmdline.a_managed_output.specified())
- manager_if_ipc.reset(new OutputManagerFromIPC(e, id, oe_exclusive));
+ manager_if_ipc.reset(new OutputManagerFromIPC(e, id, oe_exclusive,
+ ClientOutputFeatures() + cof_summary_at_end));
else
- manager_if_env.reset(new OutputManagerFromEnvironment(e, id, oe_exclusive));
+ manager_if_env.reset(new OutputManagerFromEnvironment(e, id, oe_exclusive,
+ ClientOutputFeatures() + cof_summary_at_end));
}
const std::tr1::shared_ptr<OutputManager> operator() (const Action & a)
diff --git a/src/clients/cave/cmd_sync.cc b/src/clients/cave/cmd_sync.cc
index 0f2ad8d..5694ec5 100644
--- a/src/clients/cave/cmd_sync.cc
+++ b/src/clients/cave/cmd_sync.cc
@@ -162,7 +162,8 @@ namespace
const std::tr1::shared_ptr<Repository> repo(env->package_database()->fetch_repository(name));
output_manager = env->create_output_manager(
CreateOutputManagerForRepositorySyncInfo(repo->name(),
- cmdline.a_sequential.specified() ? oe_exclusive : oe_with_others));
+ cmdline.a_sequential.specified() ? oe_exclusive : oe_with_others,
+ ClientOutputFeatures() + cof_summary_at_end));
}
catch (const Exception & e)
{
diff --git a/src/clients/paludis/do_config.cc b/src/clients/paludis/do_config.cc
index 0544e62..963d3c3 100644
--- a/src/clients/paludis/do_config.cc
+++ b/src/clients/paludis/do_config.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* 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
@@ -51,7 +51,7 @@ namespace
{
int return_code(0);
- OutputManagerFromEnvironment output_manager_holder(env, p, oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(env, p, oe_exclusive, ClientOutputFeatures());
ConfigActionOptions options(make_named_values<ConfigActionOptions>(
value_for<n::make_output_manager>(std::tr1::ref(output_manager_holder))
));
diff --git a/src/clients/paludis/info.cc b/src/clients/paludis/info.cc
index 50cac28..ad44864 100644
--- a/src/clients/paludis/info.cc
+++ b/src/clients/paludis/info.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* 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
@@ -245,7 +245,7 @@ int do_one_info(
for (PackageIDSequence::ConstIterator p(to_show_entries->begin()), p_end(to_show_entries->end()) ;
p != p_end ; ++p)
{
- OutputManagerFromEnvironment output_manager_holder(env.get(), *p, oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(env.get(), *p, oe_exclusive, ClientOutputFeatures());
InfoActionOptions options(make_named_values<InfoActionOptions>(
value_for<n::make_output_manager>(std::tr1::ref(output_manager_holder))
));
diff --git a/src/output/console_install_task.cc b/src/output/console_install_task.cc
index 8f48795..ce93409 100644
--- a/src/output/console_install_task.cc
+++ b/src/output/console_install_task.cc
@@ -1325,7 +1325,8 @@ ConsoleInstallTask::display_merge_list_entry_distsize(const DepListEntry & d,
if (! d.package_id()->supports_action(action_test))
return;
- OutputManagerFromEnvironment output_manager_holder(environment(), d.package_id(), oe_exclusive);
+ OutputManagerFromEnvironment output_manager_holder(environment(), d.package_id(),
+ oe_exclusive, ClientOutputFeatures());
FindDistfilesSize action(make_fetch_action_options(d, output_manager_holder), _already_downloaded);
d.package_id()->perform_action(action);
if (output_manager_holder.output_manager_if_constructed())