diff --git a/c.rb b/c.rb index e305240..f25af61 100755 --- a/c.rb +++ b/c.rb @@ -3,10 +3,6 @@ libexec = File.expand_path File.dirname( __FILE__) machine, source, destination = ARGV[0...3] -def ts - Time.now.strftime '%Y-%m-%d %H:%M:%S' -end - class IO def readall buf = '' diff --git a/r.pl b/r.pl index 219ae88..8427ab4 100755 --- a/r.pl +++ b/r.pl @@ -5,31 +5,32 @@ use warnings; use POSIX qw(strftime); $|++; -sub ts { - strftime '%Y-%m-%d %H:%M:%S', localtime; -} +END { wait; }; $SIG{CLD} = sub { wait; - #printf STDERR "{ts: \"".ts."\", proc: \"r\", action: \"exit\", code: $?, error: \"child_died\"}\n"; exit $?; }; -sub readcmd { +sub mj { + %_ = @_; + '{ts:"'.strftime( '%Y-%m-%d %H:%M:%S', localtime).'", proc:"s", '.join( ', ', map "$_:\"$_{$_}\"", keys%_)."}\n"; +} + +sub readg { my $data = ''; - while( length( $data) < 6) { - read( STDIN, $data, 6-length($data), length($data)) or return(0); + while( length( $data) < $_[0]) { + read( STDIN, $data, $_[0]-length($data), length($data)) or return(0); } $data; } -chdir $ARGV[0] or die( "{ts: \"".ts."\", proc: \"r\", error: \"cannot_chdir\", exception: \"$!\"}\n"); -while( my$data = readcmd) { - (my$cmd, my$length) = unpack( 'nN', $data); - #print STDERR "{ts: \"".ts."\", cmd: $cmd, length: $length}\n"; - read STDIN, $data, $length; +chdir $ARGV[0] or die( mj( error=>'cannot_chdir', exception=>$!)); +while( my$data = readg(6)) { + my( $cmd, $length) = unpack( 'nN', $data); + $data = readg $length; if( 1 == $cmd) { - open( F, '>>', $data) or die( "{ts: \"".ts."\", proc: \"r\", error: \"unable_to_open_file\", message: \"Can't open file <$data>.\"}\n"); + open( F, '>>', $data) or die( mj( error=>'unable_to_open_file', message=>"Can't open file <$data>")); my@stat = stat F; print pack( 'N', $stat[7]); } @@ -37,8 +38,7 @@ while( my$data = readcmd) { print F $data; } else { - die( "{ts: \"".ts."\", proc: \"r\", error: \"unknown_command\", command: $cmd}\n"); + die( mj( error=>'unknown_command', command=>$cmd)); } } -#print STDERR "{ts: \"".ts."\", proc: \"r\", exit: 0}\n"; exit 0; diff --git a/s.pl b/s.pl index 110493b..afbb1ab 100755 --- a/s.pl +++ b/s.pl @@ -1,35 +1,39 @@ #!/usr/bin/env perl use strict; -#use warnings; # Old perl use POSIX qw(strftime); $|++; -sub ts { - strftime '%Y-%m-%d %H:%M:%S', localtime; +sub mj { + %_ = @_; + '{ts:"'.strftime( '%Y-%m-%d %H:%M:%S', localtime).'", proc:"s", '.join( ', ', map "$_:\"$_{$_}\"", keys%_)."}\n"; +} + +sub readg { + my $data = ''; + while( length( $data) < $_[0]) { + read( STDIN, $data, $_[0]-length($data), length($data)) or return(0); + } + $data; } my$dir = shift @ARGV; -$dir =~ /^(\/.*)\/([^\/]+)$/ or die( "{ts: \"".ts."\", proc: \"s\", error: \"invalid_path_expression\", message: \"Path-Expression is invalid.\"}\n"); +$dir =~ /^(\/.*)\/([^\/]+)$/ or die( mj( error=>'invalid_path_expression', message=>'Path-Expression is invalid.')); ($dir, my$fexpr) = ($1, $2); -chdir( $dir) or die( "{ts: \"".ts."\", proc: \"s\", error: \"change_directory\", value: \"$dir\", message: \"$!\"}\n"); -opendir( DH, '.') || die "{ts: \"".ts."\", proc: \"s\", error: \"dir_not_found\", message: \"Directory not found.\"}\n"; +chdir( $dir) or die( mj( error=>'change_directory', value=>$dir, message=>$!)); +opendir( DH, '.') or die( mj( error=>'dir_not_found', message=>'Directory not found.')); while( my$filename = readdir( DH)) { - $filename =~ /$fexpr/ or next; - -f $filename or next; + next unless $filename =~ /$fexpr/ and -f $filename; print pack( 'nNA*', 1, length($filename), $filename); - print STDERR "{ts: \"".ts."\", proc: \"s\", action: \"open\", file: \"$filename\"}\n"; open F, $filename; - read STDIN, my$length, 4; # Was wenn < 4 ? + my$length = readg 4; $length = unpack 'N', $length; seek F, $length, 0; while( read( F, my$r, 1400)) { print pack( 'nNA*', 2, length($r), $r); } - print STDERR "{ts: \"".ts."\", proc: \"s\", action: \"close\", file: \"$filename\"}\n"; close F; } closedir DH; -#print STDERR "{ts: \"".ts."\", proc: \"s\", exit: 0}\n"; exit( 0);