X-Git-Url: http://git.rot13.org/?p=angular-mojolicious.git;a=blobdiff_plain;f=couchdb-trigger.pl;h=1724b6703c024e2b36a7982d27014132cde44d3b;hp=02f5c32951170fa997ca211081d5536e13a29fb6;hb=126e8d40e9d671caacdf093fd1a1a06d0930554b;hpb=f00f9c2bc3e5b79732908def0d4a31fd5f887813 diff --git a/couchdb-trigger.pl b/couchdb-trigger.pl index 02f5c32..1724b67 100755 --- a/couchdb-trigger.pl +++ b/couchdb-trigger.pl @@ -25,6 +25,9 @@ my ( $url, $trigger_path ) = @ARGV; $url ||= 'http://localhost:5984/monitor'; $trigger_path ||= 'trigger/shell.pm' ; +our $database = $1 if $url =~ m{/(\w+)/?$}; + +sub commit { warn "# commit ignored\n"; } require $trigger_path if -e $trigger_path; my $seq = 0; @@ -45,12 +48,9 @@ while( ! $error ) { $tx->res->body(sub{ my ( $content, $body ) = @_; - debug 'BODY' => $body; + return if length($body) == 0; # empty chunk, heartbeat? - if ( length($body) == 0 ) { - warn "# empty chunk, heartbeat?\n"; - return; - } + debug 'BODY' => $body; foreach ( split(/\r?\n/, $body) ) { # we can get multiple documents in one chunk @@ -83,7 +83,7 @@ while( ! $error ) { if ( $tx->res->code == 409 ) { info "TRIGGER ABORTED started on another worker? ", $tx->error; } else { - info "ERROR ", $tx->error; + info "ERROR $url/$id ", $tx->error; } } else { my $res = $tx->res->json; @@ -97,7 +97,7 @@ while( ! $error ) { $client->put( "$url/$id" => $json->encode( $change->{doc} ) => sub { my ($client,$tx) = @_; if ($tx->error) { - info "ERROR", $tx->error; + info "ERROR $url/$id", $tx->error; } else { my $res = $tx->res->json; $change->{doc}->{_rev} = $res->{rev}; @@ -114,6 +114,8 @@ while( ! $error ) { } + commit; + }); $client->start($tx);