pipe delimit | fields in log to better support *deleting itemize which have spaces...
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 17 Jul 2011 13:12:12 +0000 (13:12 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 17 Jul 2011 13:12:12 +0000 (13:12 +0000)
rsync-piper.pl

index 0741abb..f8b8da1 100755 (executable)
@@ -36,7 +36,7 @@ file:%f:text
 $transfer[2] = "port:$port:int"; # expand $port
 
 my @transfer_names =          map { ( split(/:/,$_,3) )[0] } @transfer;
-my $transfer_log   = join(' ',map { ( split(/:/,$_,3) )[1] } @transfer );
+my $transfer_log   = join('|',map { ( split(/:/,$_,3) )[1] } @transfer );
 
 if ( $ENV{SQL} ) {
        print "CREATE TABLE rsync_transfer (\n\t",
@@ -125,7 +125,7 @@ while(1) {
                        my $transfer = $1;
                        $transfer =~ s|(\d\d\d\d)/(\d\d)/(\d\d)[-\s](\d\d:\d\d:\d\d)|$1-$2-$3T$4|g;
 warn "XXX $transfer";
-                       my ( $yyyy,$mm,$dd,undef,$login,undef ) = split( /[\-T\s]/, $transfer, 6 );
+                       my ( $yyyy,$mm,$dd,undef,$login,undef ) = split( /[\-T\|]/, $transfer, 6 );
 
                        my $path = "users/$login/log";
                        mkdir $path unless -d $path;
@@ -133,12 +133,12 @@ warn "XXX $transfer";
 warn "## $path $transfer\n";
                        my $new_log = ! -e $path;
                        open( my $log, '>>', $path );
-                       print $log join(' ',@transfer),"\n" if $new_log; # store header
+                       print $log join('|',@transfer),"\n" if $new_log; # store header
                        print $log "$transfer\n";
                        close $log;
 
 
-                       my @v = split(/\s+/,$transfer,$#transfer + 1);
+                       my @v = split(/\|/,$transfer,$#transfer + 1);
                        my %data;
                        @data{@transfer_names} = @v ; # FIXME validate?