|
|
@@ -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},
|