diff options
author | jkh <jkh@FreeBSD.org> | 1994-12-06 00:51:50 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1994-12-06 00:51:50 +0000 |
commit | 773a5f451d951042f1a9541533ee9b5c97430c39 (patch) | |
tree | 769d2ca49d84039a97bd74c4ce202b318da0828a /usr.sbin/pkg_install/delete/main.c | |
parent | f9dc382f6c8f8900550f2f35436613d329df120d (diff) | |
download | FreeBSD-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.c | 27 |
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); |