Index: trunk/DataStore/scripts/dsget
===================================================================
--- trunk/DataStore/scripts/dsget	(revision 6626)
+++ trunk/DataStore/scripts/dsget	(revision 14850)
@@ -3,5 +3,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: dsget,v 1.1 2006-03-17 03:42:32 jhoblitt Exp $
+# $Id: dsget,v 1.2 2007-09-15 02:22:20 jhoblitt Exp $
 
 use strict;
@@ -18,9 +18,10 @@
 use Pod::Usage qw( pod2usage );
 
-my ($uri, $bytes, $md5, $filename);
+my ($uri, $bytes, $md5, $nebulous, $filename);
 
 GetOptions(
     'uri|u=s'       => \$uri,
     'bytes|m=s'     => \$bytes,
+    'nebulous|n=s'  => \$nebulous,
     'md5|m=s'       => \$md5,
     'filename|f=s'  => \$filename,
@@ -73,6 +74,22 @@
 # always be a rename operation instead of a copy and delete.
 
-rename $tmpfilename, $filename
-    or die "renaming $tmpfilename to $filename failed: $!";
+if ($nebulous) {
+    require Nebulous::Client;
+    require File::Copy;
+    my $neb = Nebulous::Client->new(
+#        proxy   => 'http://localhost:80/nebulous'
+    );
+    my $fh = $neb->open_create( $filename )
+        or die "Nebulous can't create key $filename";
+    open(my $src_fh, $tmpfilename) or die "can't open file $tmpfilename: $!";
+
+    File::Copy::copy( $src_fh, $fh ) or die "file copy failed";
+
+    close($src_fh) or die "can't close file $tmpfilename: $!";
+    close($fh) or die "can't close nebulous filehandle";
+} else {
+    rename $tmpfilename, $filename
+        or die "renaming $tmpfilename to $filename failed: $!";
+}
 
 __END__
