summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install/delete/main.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1994-12-06 00:51:50 +0000
committerjkh <jkh@FreeBSD.org>1994-12-06 00:51:50 +0000
commit773a5f451d951042f1a9541533ee9b5c97430c39 (patch)
tree769d2ca49d84039a97bd74c4ce202b318da0828a /usr.sbin/pkg_install/delete/main.c
parentf9dc382f6c8f8900550f2f35436613d329df120d (diff)
downloadFreeBSD-src-773a5f451d951042f1a9541533ee9b5c97430c39.zip
FreeBSD-src-773a5f451d951042f1a9541533ee9b5c97430c39.tar.gz
Many of John T. Kohl's patches from NetBSD. Thanks, John!
Submitted by: jkohl
Diffstat (limited to 'usr.sbin/pkg_install/delete/main.c')
-rw-r--r--usr.sbin/pkg_install/delete/main.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/usr.sbin/pkg_install/delete/main.c b/usr.sbin/pkg_install/delete/main.c
index a66edfd..c59f94b 100644
--- a/usr.sbin/pkg_install/delete/main.c
+++ b/usr.sbin/pkg_install/delete/main.c
@@ -1,5 +1,5 @@
#ifndef lint
-static char *rcsid = "$Id: main.c,v 1.5 1993/09/04 05:06:38 jkh Exp $";
+static char *rcsid = "$Id: main.c,v 1.2 1993/09/03 23:01:00 jkh Exp $";
#endif
/*
@@ -26,15 +26,17 @@ static char *rcsid = "$Id: main.c,v 1.5 1993/09/04 05:06:38 jkh Exp $";
#include "lib.h"
#include "delete.h"
-static char Options[] = "hvDnp:";
+static char Options[] = "hvDdnfp:";
char *Prefix = NULL;
Boolean NoDeInstall = FALSE;
+Boolean CleanDirs = FALSE;
+Boolean Force = FALSE;
int
main(int argc, char **argv)
{
- int ch, err;
+ int ch, error;
char **pkgs, **start;
char *prog_name = argv[0];
@@ -45,6 +47,10 @@ main(int argc, char **argv)
Verbose = TRUE;
break;
+ case 'f':
+ Force = TRUE;
+ break;
+
case 'p':
Prefix = optarg;
break;
@@ -53,6 +59,10 @@ main(int argc, char **argv)
NoDeInstall = TRUE;
break;
+ case 'd':
+ CleanDirs = TRUE;
+ break;
+
case 'n':
Fake = TRUE;
Verbose = TRUE;
@@ -77,10 +87,12 @@ main(int argc, char **argv)
if (pkgs == start)
usage(prog_name, "Missing package name(s)");
*pkgs = NULL;
- if ((err = pkg_perform(start)) != NULL) {
+ if (!Fake && getuid() != 0)
+ errx(1, "You must be root to delete packages.");
+ if ((error = pkg_perform(start)) != NULL) {
if (Verbose)
- fprintf(stderr, "%d package deletion(s) failed.\n", err);
- return err;
+ fprintf(stderr, "%d package deletion(s) failed.\n", error);
+ return error;
}
else
return 0;
@@ -102,6 +114,9 @@ usage(const char *name, const char *fmt, ...)
fprintf(stderr, "Where args are one or more of:\n\n");
fprintf(stderr, "-v verbose\n");
fprintf(stderr, "-p arg override prefix with arg\n");
+ fprintf(stderr, "-d delete empty directories when deinstalling\n");
+ fprintf(stderr, "-f force delete even if dependencies exist\n");
+ fprintf(stderr, " or deinstall/requirement checks fail\n");
fprintf(stderr, "-D don't execute pkg de-install script, if any\n");
fprintf(stderr, "-n don't actually de-install, just show steps\n");
exit(1);
OpenPOWER on IntegriCloud