chiark / gitweb /
wip changes for remote push - implement i_resp_*
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 9 Oct 2013 06:21:45 +0000 (07:21 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 9 Oct 2013 06:21:45 +0000 (07:21 +0100)
TODO
dgit

diff --git a/TODO b/TODO
index 7a3d688..f61fa50 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,5 @@
-implement i_resp_*
+implement i_localname_*
+implement i_want_*
 
 --gpg= etc. @gpg should be in manual
 should pass @gpg to debsign
diff --git a/dgit b/dgit
index b551eac..eb6f01d 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1406,7 +1406,34 @@ sub cmd_rpush {
     };
     i_cleanup();
     die $@;
+}
+
+sub i_resp_progress ($) {
+    my ($rhs) = @_;
+    my $msg = protocol_read_bytes \*RO, $rhs;
+    progress $msg;
+}
+
+sub i_resp_complete {
+    i_cleanup();
+    exit 0;
+}
+
+sub i_resp_file ($) {
+    my ($keyword) = @_;
+    my $localname = i_method "i_localname_", $keyword;
+    my $localpath = "$i_tmp/$localname";
+    stat $localpath and badproto \*RO, "file $keyword ($localpath) twice";
+    protocol_receive_file \*RO, $localpath;
+}
+
+sub i_resp_want ($) {
+    my ($keyword) = @_;
+    my @localpaths = i_method "i_want_", $keyword;
+    foreach my $localpath (@localpaths) {
+       protocol_send_file \*RI, $localpath;
     }
+    print RI "end-files\n" or die $!;
 }
 
 #---------- building etc. ----------