Add an option that causes cpdup to skip CHR or BLK devices. This option
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 21 Sep 2006 04:09:28 +0000 (04:09 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 21 Sep 2006 04:09:28 +0000 (04:09 +0000)
would typically be needed if using cpdup across a network to a non-BSD box
which does not support the creation of device nodes.

bin/cpdup/cpdup.1
bin/cpdup/cpdup.c

index 2b4ad46..9f503fa 100644 (file)
@@ -3,7 +3,7 @@
 .\"    USE WITH EXTREME CAUTION.
 .\"
 .\"
 .\"    USE WITH EXTREME CAUTION.
 .\"
 .\"
-.\" $DragonFly: src/bin/cpdup/cpdup.1,v 1.17 2006/09/16 16:47:29 dillon Exp $
+.\" $DragonFly: src/bin/cpdup/cpdup.1,v 1.18 2006/09/21 04:09:28 dillon Exp $
 .Dd October 28, 1999
 .Dt CPDUP 1
 .Os
 .Dd October 28, 1999
 .Dt CPDUP 1
 .Os
@@ -18,6 +18,7 @@
 .Op Fl f
 .Op Fl s0
 .Op Fl i0
 .Op Fl f
 .Op Fl s0
 .Op Fl i0
+.Op Fl j0
 .Op Fl q
 .Op Fl o
 .Op Fl m
 .Op Fl q
 .Op Fl o
 .Op Fl m
@@ -93,6 +94,8 @@ safety feature is enabled by default to prevent user mistakes from blowing
 away everything accidently.
 .It Fl i0
 Do not request confirmation when removing something.
 away everything accidently.
 .It Fl i0
 Do not request confirmation when removing something.
+.It Fl j0
+Do not try to recreate CHR or BLK devices.
 .It Fl q
 Quiet operation
 .It Fl o
 .It Fl q
 Quiet operation
 .It Fl o
index 9f3422e..b9f7f53 100644 (file)
@@ -45,7 +45,7 @@
  *     - Is able to do incremental mirroring/backups via hardlinks from
  *       the 'previous' version (supplied with -H path).
  *
  *     - Is able to do incremental mirroring/backups via hardlinks from
  *       the 'previous' version (supplied with -H path).
  *
- * $DragonFly: src/bin/cpdup/cpdup.c,v 1.17 2006/09/16 16:47:29 dillon Exp $
+ * $DragonFly: src/bin/cpdup/cpdup.c,v 1.18 2006/09/21 04:09:28 dillon Exp $
  */
 
 /*-
  */
 
 /*-
@@ -109,6 +109,7 @@ int DoCopy(const char *spath, const char *dpath, dev_t sdevNo, dev_t ddevNo);
 int AskConfirmation = 1;
 int SafetyOpt = 1;
 int ForceOpt;
 int AskConfirmation = 1;
 int SafetyOpt = 1;
 int ForceOpt;
+int DeviceOpt = 1;
 int VerboseOpt;
 int QuietOpt;
 int NoRemoveOpt;
 int VerboseOpt;
 int QuietOpt;
 int NoRemoveOpt;
@@ -201,6 +202,9 @@ main(int ac, char **av)
        case 'i':
            AskConfirmation = v;
            break;
        case 'i':
            AskConfirmation = v;
            break;
+       case 'j':
+           DeviceOpt = v;
+           break;
        case 's':
            SafetyOpt = v;
            break;
        case 's':
            SafetyOpt = v;
            break;
@@ -1012,7 +1016,7 @@ skip_copy:
            r = 1;
            logerr("%-32s softlink-failed\n", (dpath ? dpath : spath));
        }
            r = 1;
            logerr("%-32s softlink-failed\n", (dpath ? dpath : spath));
        }
-    } else if (S_ISCHR(st1.st_mode) || S_ISBLK(st1.st_mode)) {
+    } else if ((S_ISCHR(st1.st_mode) || S_ISBLK(st1.st_mode)) && DeviceOpt) {
        char path[2048];
 
        if (ForceOpt ||
        char path[2048];
 
        if (ForceOpt ||