Merge branch 'collectd-3.11' into collectd-4.0
[collectd.git] / contrib / migrate-3-4.px
index 613561b..31abae4 100755 (executable)
@@ -125,7 +125,7 @@ our %TypeRename =
 
 GetOptions ("indir|i=s" => \$InDir,
        "outdir|o=s" => \$OutDir,
-       "hostname=s" => \$Hostname) or exit (1);
+       "hostname=s" => \$Hostname) or exit_usage ();
 
 die "No such directory: $InDir" if (!-d $InDir);
 
@@ -341,6 +341,7 @@ sub special_disk
        my $orig = shift;
        my $dest_filename = shift;
        my $dest = shift;
+       my $dest_directory;
 
        $dest->{'type_instance'} = undef;
        $dest->{'plugin_instance'} = _special_disk_instance ($orig->{'type_instance'});
@@ -351,6 +352,14 @@ sub special_disk
 
        $dest->{'type'} = 'disk_merged';
        $dest_filename = get_filename ($dest);
+
+       $dest_directory = dirname ($dest_filename);
+       if (!exists ($OutDirs{$dest_directory}))
+       {
+               print "[ -d '$OutDir/$dest_directory' ] || mkdir -p '$OutDir/$dest_directory'\n";
+               $OutDirs{$dest_directory} = 1;
+       }
+
        print "./extractDS.px -i '$InDir/$orig_filename' -s 'rmerged' -s 'wmerged' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n";
 
        $dest->{'type'} = 'disk_octets';
@@ -365,3 +374,11 @@ sub special_disk
        $dest_filename = get_filename ($dest);
        print "./extractDS.px -i '$InDir/$orig_filename' -s 'rtime' -s 'wtime' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n";
 }
+
+sub exit_usage
+{
+       print <<EOF;
+Usage: $0 [-i indir] [-o outdir] [--hostname myhostname]
+EOF
+       exit (1);
+}