From 9e6b13f3751f8a1287ff79861980afb7792a5f9e Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 28 Nov 2013 12:15:47 +0100 Subject: move EditSources into its own file --- apt-private/private-sources.cc | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 apt-private/private-sources.cc (limited to 'apt-private/private-sources.cc') diff --git a/apt-private/private-sources.cc b/apt-private/private-sources.cc new file mode 100644 index 000000000..eb9c5b971 --- /dev/null +++ b/apt-private/private-sources.cc @@ -0,0 +1,45 @@ + +#include +#include + +#include "private-output.h" +#include "private-sources.h" +#include "private-utils.h" + +// EditSource - EditSourcesList /*{{{*/ +// --------------------------------------------------------------------- +bool EditSources(CommandLine &CmdL) +{ + bool res; + pkgSourceList sl; + std::string outs; + + // FIXME: suport CmdL.FileList to specify sources.list.d files + std::string sourceslist = _config->FindFile("Dir::Etc::sourcelist"); + + HashString before; + before.FromFile(sourceslist); + + do { + EditFileInSensibleEditor(sourceslist); + _error->PushToStack(); + res = sl.Read(sourceslist); + if (!res) { + strprintf(outs, _("Failed to parse %s. Edit again? "), + sourceslist.c_str()); + std::cout << outs; + res = !YnPrompt(true); + } + _error->RevertToStack(); + } while (res == false); + + if (!before.VerifyFile(sourceslist)) { + strprintf( + outs, _("Your '%s' file changed, please run 'apt-get update'."), + sourceslist.c_str()); + std::cout << outs << std::endl; + } + + return true; +} + /*}}}*/ -- cgit v1.2.3