civodul pushed a commit to tag 1.8
in repository guix.
commit 56131a2709d76a1e52bada83a083bd2cfee2f716
Author: Eelco Dolstra <[email protected]>
Date: Thu Jul 24 12:24:25 2014 +0200
Refactor
---
perl/lib/Nix/CopyClosure.pm | 8 +-------
perl/lib/Nix/SSH.pm | 21 ++++++++++++++++++++-
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/perl/lib/Nix/CopyClosure.pm b/perl/lib/Nix/CopyClosure.pm
index f701a7c..061a15c 100644
--- a/perl/lib/Nix/CopyClosure.pm
+++ b/perl/lib/Nix/CopyClosure.pm
@@ -27,13 +27,7 @@ sub copyToOpen {
# Get back the set of paths that are already valid on the remote host.
my %present;
- my $n = readInt($from);
- while ($n--) {
- my $len = readInt($from);
- my $s = readN($len, $from);
- $present{$s} = 1;
- readN(8 - $len % 8, $from) if $len % 8; # skip padding
- }
+ $present{$_} = 1 foreach readStrings($from);
my @missing = grep { !$present{$_} } @closure;
return if !@missing;
diff --git a/perl/lib/Nix/SSH.pm b/perl/lib/Nix/SSH.pm
index 3bcbabe..dd3e5ce 100644
--- a/perl/lib/Nix/SSH.pm
+++ b/perl/lib/Nix/SSH.pm
@@ -7,7 +7,8 @@ use IPC::Open2;
our @ISA = qw(Exporter);
our @EXPORT = qw(
sshOpts openSSHConnection closeSSHConnection
- readN readInt writeInt writeString writeStrings
+ readN readInt readString readStrings
+ writeInt writeString writeStrings
connectToRemoteNix
);
@@ -83,6 +84,24 @@ sub readInt {
}
+sub readString {
+ my ($from) = @_;
+ my $len = readInt($from);
+ my $s = readN($len, $from);
+ readN(8 - $len % 8, $from) if $len % 8; # skip padding
+ return $s;
+}
+
+
+sub readStrings {
+ my ($from) = @_;
+ my $n = readInt($from);
+ my @res;
+ push @res, readString($from) while $n--;
+ return @res;
+}
+
+
sub writeInt {
my ($n, $to) = @_;
syswrite($to, pack("L<x4", $n)) or die;