Add getAllOutput option to query tied variable.
The separator ditching was really a hack that I made to make unintended queries work, but generally it's relied upon by other scripts that I use, so I've herein created an option for getting all the output.
This commit is contained in:
		
							parent
							
								
									11628b4333
								
							
						
					
					
						commit
						e1857dc63f
					
				
					 2 changed files with 9 additions and 7 deletions
				
			
		|  | @ -15,8 +15,8 @@ sub BeancountQueryInitialize { | |||
|     die "BEANCOUNT_QUERY: tie failed: is the goffy beancount server running?\n"; | ||||
| } | ||||
| 
 | ||||
| sub BeancountQuerySubmit($;$) { | ||||
|   my($question, $format) = @_; | ||||
| sub BeancountQuerySubmit($;$$) { | ||||
|   my($question, $format, $getAllOutput) = @_; | ||||
|   while (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) { sleep 1; } | ||||
|   (tied %BEANCOUNT_QUERY)->shlock; | ||||
|   if (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) { | ||||
|  | @ -28,6 +28,7 @@ sub BeancountQuerySubmit($;$) { | |||
|   } | ||||
|   $BEANCOUNT_QUERY{question} = $question; | ||||
|   $BEANCOUNT_QUERY{format} = $format if defined $format; | ||||
|   $BEANCOUNT_QUERY{getAllOutput} = $getAllOutput if defined $getAllOutput; | ||||
|   (tied %BEANCOUNT_QUERY)->shunlock; | ||||
|   my $cnt = 0; | ||||
|   while (not defined $BEANCOUNT_QUERY{fifoName}) { | ||||
|  | @ -36,7 +37,7 @@ sub BeancountQuerySubmit($;$) { | |||
|   } | ||||
|   unless (-p $BEANCOUNT_QUERY{fifoName}) { | ||||
|     (tied %BEANCOUNT_QUERY)->shlock; | ||||
|     $BEANCOUNT_QUERY{question} = $BEANCOUNT_QUERY{format} = undef; | ||||
|     $BEANCOUNT_QUERY{question} = $BEANCOUNT_QUERY{format} = $BEANCOUNT_QUERY{getAllOutput} = undef; | ||||
|     (tied %BEANCOUNT_QUERY)->shunlock; | ||||
|     die "Ceci n'est pas une pipe: BEANCOUNT_QUERY{fifoName}, $BEANCOUNT_QUERY{fifoName}:$!" | ||||
|   } | ||||
|  |  | |||
|  | @ -141,18 +141,19 @@ while (1) { | |||
|       or die("Unable to find beancount prompt, output was instead: ". | ||||
|              $runningBeanQuery->before() . $runningBeanQuery->after()); | ||||
|     (tied %query)->shlock; | ||||
|     print STDERR "Acquired shlock on tied variable.\n" if $VERBOSE > 1; | ||||
|     print STDERR "Acquired shlock on tied variable.\n" if $VERBOSE > 2; | ||||
|     $query{fifoName} = undef; | ||||
|     my $cnt = 0; | ||||
|     my $fifoFileName = mktemp(catfile($FIFO_DIR, "beancount-query-fifo_${$}_XXXXXXXXX")); | ||||
|     mkfifo($fifoFileName, 0700); | ||||
|     die "unable to create fifo in $fifoFileName: $!" unless -p $fifoFileName; | ||||
|     print STDERR "Created $fifoFileName..." if $VERBOSE > 1; | ||||
|     print STDERR "Created $fifoFileName..." if $VERBOSE > 2; | ||||
|     $query{fifoName} = $fifoFileName; | ||||
|     my $getAllOutput = $query{getAllOutput}; | ||||
|     (tied %query)->shunlock; | ||||
|     open(my $fifoFH, ">", $fifoFileName); | ||||
|     print STDERR "and beginning write to it." if $VERBOSE > 1; | ||||
|     my($seenSeperator, $prevLine) =  (0, ""); | ||||
|     print STDERR "and beginning write to it." if $VERBOSE > 2; | ||||
|     my($seenSeperator, $prevLine) =  ( ((defined $getAllOutput) and $getAllOutput), ""); | ||||
|     my $rbcOut = $runningBeanQuery->before(); | ||||
|     foreach my $line (split /\n/, $rbcOut) { | ||||
|       # Occasionally, some of the SELECT statement is printed back to | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn