summaryrefslogtreecommitdiff
path: root/src/main.cc
diff options
context:
space:
mode:
authorDaniel Burrows <dburrows@debian.org>2009-09-05 10:45:31 -0700
committerDaniel Burrows <dburrows@debian.org>2009-09-05 10:45:31 -0700
commitf824cddc8000b85c1d630385ce74876855a408d0 (patch)
tree4e0e3cc05640fa1f0a20a99880c4d8616bc199e2 /src/main.cc
parent8cbe431d7be94f5bba036fff38ea86a1a59d7ead (diff)
downloadaptitude-f824cddc8000b85c1d630385ce74876855a408d0.tar.gz
Make autoclean support automatic su-to-root as well.
Diffstat (limited to 'src/main.cc')
-rw-r--r--src/main.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main.cc b/src/main.cc
index d4638357..206ef6f8 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -235,6 +235,7 @@ enum {
OPTION_LOG_CONFIG_FILE,
OPTION_LOG_RESOLVER,
OPTION_SHOW_SUMMARY,
+ OPTION_AUTOCLEAN_ON_STARTUP,
OPTION_CLEAN_ON_STARTUP
};
int getopt_result;
@@ -285,6 +286,7 @@ option opts[]={
{"log-config-file", 1, &getopt_result, OPTION_LOG_CONFIG_FILE},
{"log-resolver", 0, &getopt_result, OPTION_LOG_RESOLVER},
{"show-summary", 2, &getopt_result, OPTION_SHOW_SUMMARY},
+ {"autoclean-on-startup", 0, &getopt_result, OPTION_AUTOCLEAN_ON_STARTUP},
{"clean-on-startup", 0, &getopt_result, OPTION_CLEAN_ON_STARTUP},
{0,0,0,0}
};
@@ -538,6 +540,7 @@ int main(int argc, char *argv[])
bool arch_only = aptcfg->FindB("Apt::Get::Arch-Only", false);
bool update_only=false, install_only=false, queue_only=false;
+ bool autoclean_only = false;
bool clean_only = false;
bool assume_yes=aptcfg->FindB(PACKAGE "::CmdLine::Assume-Yes", false);
bool fix_broken=aptcfg->FindB(PACKAGE "::CmdLine::Fix-Broken", false);
@@ -834,6 +837,10 @@ int main(int argc, char *argv[])
show_why_summary_mode = optarg;
break;
+ case OPTION_AUTOCLEAN_ON_STARTUP:
+ autoclean_only = true;
+ break;
+
case OPTION_CLEAN_ON_STARTUP:
clean_only = true;
break;
@@ -911,19 +918,21 @@ int main(int argc, char *argv[])
++num_startup_actions;
if(install_only)
++num_startup_actions;
+ if(autoclean_only)
+ ++num_startup_actions;
if(clean_only)
++num_startup_actions;
if(num_startup_actions > 1)
{
fprintf(stderr, "%s",
- _("Only one of -u, -i, and --clean-on-startup may be specified\n"));
+ _("Only one of --auto-clean-on-startup, --clean-on-startup, -i, and -u may be specified\n"));
usage();
exit(1);
}
}
- if((update_only || install_only || clean_only) && optind!=argc)
+ if((update_only || install_only || autoclean_only || clean_only) && optind != argc)
{
fprintf(stderr, "%s\n",
_("-u, -i, and --clean-on-startup may not be specified in command-line mode (eg, with 'install')"));
@@ -944,7 +953,7 @@ int main(int argc, char *argv[])
signal(SIGWINCH, update_screen_width);
update_screen_width();
- if(update_only || install_only || clean_only)
+ if(update_only || install_only || autoclean_only || clean_only)
{
fprintf(stderr, "%s\n",
_("-u, -i, and --clean-on-startup may not be specified with a command"));
@@ -1118,6 +1127,8 @@ int main(int argc, char *argv[])
do_update_lists();
else if(install_only)
do_package_run_or_show_preview();
+ else if(autoclean_only)
+ do_autoclean();
else if(clean_only)
do_clean();