Browse Source

cmdline/apt-get.cc: Add apt-get markauto, showauto and unmarkauto commands.

tags/debian/0.8.0
Julian Andres Klode 11 years ago
parent
commit
d63a145842
3 changed files with 64 additions and 1 deletions
  1. +60
    -0
      cmdline/apt-get.cc
  2. +2
    -1
      cmdline/apt-mark
  3. +2
    -0
      debian/changelog

+ 60
- 0
cmdline/apt-get.cc View File

@@ -2013,6 +2013,60 @@ bool DoInstall(CommandLine &CmdL)

return InstallPackages(Cache,false);
}

/* show automatically installed packages. */
bool DoShowAuto(CommandLine &CmdL)
{
OpProgress progress;
pkgCacheFile Cache;
if (Cache.Open(progress, false) == false)
return false;

for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; P++)
if (Cache[P].Flags & pkgCache::Flag::Auto)
ioprintf(c1out,_("%s\n"), P.Name());
return true;
}

/* mark packages as automatically/manually installed. */
bool DoMarkAuto(CommandLine &CmdL)
{
bool Action = true;
int AutoMarkChanged = 0;
OpTextProgress progress;
CacheFile Cache;
if (Cache.Open() == false)
return false;

if (strcasecmp(CmdL.FileList[0],"markauto") == 0)
Action = true;
else if (strcasecmp(CmdL.FileList[0],"unmarkauto") == 0)
Action = false;

for (const char **I = CmdL.FileList + 1; *I != 0; I++)
{
const char *S = *I;
// Locate the package
pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
if (Pkg.end() == true) {
return _error->Error(_("Couldn't find package %s"),S);
}
else
{
if (!Action)
ioprintf(c1out,_("%s set to manually installed.\n"), Pkg.Name());
else
ioprintf(c1out,_("%s set to automatically installed.\n"),
Pkg.Name());

Cache->MarkAuto(Pkg,Action);
AutoMarkChanged++;
}
}
if (AutoMarkChanged && ! _config->FindB("APT::Get::Simulate",false))
return Cache->writeStateFile(NULL);
return false;
}
/*}}}*/
// DoDistUpgrade - Automatic smart upgrader /*{{{*/
// ---------------------------------------------------------------------
@@ -2798,6 +2852,9 @@ bool ShowHelp(CommandLine &CmdL)
" clean - Erase downloaded archive files\n"
" autoclean - Erase old downloaded archive files\n"
" check - Verify that there are no broken dependencies\n"
" markauto - Mark the given packages as automatically installed\n"
" unmarkauto - Mark the given packages as manually installed\n"
" showauto - Display a list of automatically installed packages\n"
"\n"
"Options:\n"
" -h This help text.\n"
@@ -2904,6 +2961,9 @@ int main(int argc,const char *argv[]) /*{{{*/
{"purge",&DoInstall},
{"autoremove",&DoInstall},
{"purge",&DoInstall},
{"showauto",&DoShowAuto},
{"markauto",&DoMarkAuto},
{"unmarkauto",&DoMarkAuto},
{"dist-upgrade",&DoDistUpgrade},
{"dselect-upgrade",&DoDSelectUpgrade},
{"build-dep",&DoBuildDep},


+ 2
- 1
cmdline/apt-mark View File

@@ -8,7 +8,7 @@ import os.path
try:
import apt_pkg
except ImportError:
print "Error importing apt_pkg, is python-apt installed?"
print >> sys.stderr, "Error importing apt_pkg, is python-apt installed?"
sys.exit(1)
actions = { "markauto" : 1,
@@ -68,6 +68,7 @@ if __name__ == "__main__":
# option parsing
parser = OptionParser()
parser.usage = "%prog [options] {markauto|unmarkauto} packages..."
parser.epilog = "apt-mark is deprecated, use apt-get markauto/unmarkauto."
parser.add_option("-f", "--file", action="store", type="string",
dest="filename",
help="read/write a different file")


+ 2
- 0
debian/changelog View File

@@ -65,6 +65,8 @@ apt (0.7.26~exp4) UNRELEASEDexperimental; urgency=low
an object which will be set to NULL when the object is deallocated.
* [ABI break] apt-pkg/acquire{-worker,-item,}.h:
- subclass pkgAcquire::{Worker,Item,ItemDesc} from WeakPointable.
* cmdline/apt-get.cc:
- Add apt-get markauto, showauto and unmarkauto commands.

-- David Kalnischkies <kalnischkies@gmail.com> Sat, 03 Apr 2010 14:58:39 +0200



Loading…
Cancel
Save