Add a -D option to install(1)
authorFrançois Tigeot <ftigeot@wolfpond.org>
Wed, 7 Sep 2011 07:37:22 +0000 (09:37 +0200)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Wed, 7 Sep 2011 07:44:26 +0000 (09:44 +0200)
This option is implemented for compatibility with the NetBSD version of
install(1). Even though its code is fully operating, it is only useful
when used in combination with the non-implemented -M NetBSD flag.

Thus, it is effectively a dummy as of the present commit.

usr.bin/xinstall/install.1
usr.bin/xinstall/xinstall.c

index c879c79..ddb15bf 100644 (file)
@@ -33,7 +33,7 @@
 .\" $FreeBSD: src/usr.bin/xinstall/install.1,v 1.16.2.9 2002/07/01 21:01:23 des Exp $
 .\" $DragonFly: src/usr.bin/xinstall/install.1,v 1.6 2007/05/17 08:19:02 swildner Exp $
 .\"
-.Dd May 7, 2001
+.Dd September 7, 2011
 .Dt INSTALL 1
 .Os
 .Sh NAME
@@ -44,6 +44,7 @@
 .Op Fl bCclMpSsv
 .Op Fl L Ar etcdir
 .Op Fl B Ar suffix
+.Op Fl D Ar destdir
 .Op Fl f Ar flags
 .Op Fl g Ar group
 .Op Fl m Ar mode
@@ -53,6 +54,7 @@
 .Op Fl bCclMpSsv
 .Op Fl L Ar etcdir
 .Op Fl B Ar suffix
+.Op Fl D Ar destdir
 .Op Fl f Ar flags
 .Op Fl g Ar group
 .Op Fl m Ar mode
@@ -60,6 +62,7 @@
 .Ar file1 ... fileN directory
 .Nm
 .Fl d
+.Op Fl D Ar destdir
 .Op Fl vl
 .Op Fl L Ar etcdir
 .Op Fl g Ar group
@@ -119,6 +122,14 @@ option is only included for backwards compatibility.
 .It Fl d
 Create directories.
 Missing parent directories are created as required.
+.It Fl D Ar destdir
+Specify the
+.Ev DESTDIR
+(top of the file hierarchy) that the items are installed in to.
+This option is implemented for compatibility with the NetBSD version
+of
+.Nm install
+and does nothing.
 .It Fl f
 Specify the target's file flags; see
 .Xr chflags 1
index ac45f82..a1add6d 100644 (file)
@@ -79,6 +79,7 @@ uid_t uid;
 int dobackup, docompare, dodir, dopreserve, dostrip, nommap, safecopy, verbose;
 mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
 const char *suffix = BACKUP_SUFFIX;
+char  *destdir;
 
 static int file_getgroup(const char *etcdir, const char *group, gid_t *gidret);
 static int file_getowner(const char *etcdir, const char *owner, uid_t *uidret);
@@ -114,7 +115,7 @@ main(int argc, char **argv)
        owner = NULL;
        etcdir = NULL;
 
-       while ((ch = getopt(argc, argv, "L:B:bCcdf:g:lMm:o:pSsv")) != -1)
+       while ((ch = getopt(argc, argv, "L:B:bCcdf:g:lMm:o:pSsv:D:")) != -1)
                switch((char)ch) {
                case 'L':
                        etcdir = optarg;
@@ -134,6 +135,9 @@ main(int argc, char **argv)
                case 'd':
                        dodir = 1;
                        break;
+               case 'D':
+                       destdir = optarg;
+                       break;
                case 'f':
                        flags = optarg;
                        if (strtofflags(&flags, &fset, &fclr))
@@ -850,11 +854,11 @@ void
 usage(void)
 {
        fprintf(stderr, "\
-usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n\
+usage: install [-bCcpSsv] [-B suffix] [-D dest] [-f flags] [-g group] [-m mode]\n\
                [-o owner] file1 file2\n\
-       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n\
+       install [-bCcpSsv] [-B suffix] [-D dest] [-f flags] [-g group] [-m mode]\n\
                [-o owner] file1 ... fileN directory\n\
-       install -d [-v] [-g group] [-m mode] [-o owner] directory ...\n");
+       install -d [-v] [-D dest] [-g group] [-m mode] [-o owner] directory ...\n");
        exit(EX_USAGE);
        /* NOTREACHED */
 }