user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 1/3] git: add support for qx wrapper
  @ 2016-04-09  9:14  7% ` Eric Wong
  0 siblings, 0 replies; 1+ results
From: Eric Wong @ 2016-04-09  9:14 UTC (permalink / raw)
  To: meta

This lets us one-line git commands easily like ``, but without
having to remember --git-dir or escape arguments.
---
 lib/PublicInbox/Git.pm | 8 ++++++++
 t/git.t                | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index 0f92dd9..c406c03 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -117,6 +117,14 @@ sub popen {
 	popen_rd(\@cmd);
 }
 
+sub qx {
+	my ($self, @cmd) = @_;
+	my $fh = $self->popen(@cmd);
+	return <$fh> if wantarray;
+	local $/;
+	<$fh>
+}
+
 sub cleanup {
 	my ($self) = @_;
 	_destroy($self, qw(in out pid));
diff --git a/t/git.t b/t/git.t
index 0f3dbae..d7b20d0 100644
--- a/t/git.t
+++ b/t/git.t
@@ -129,6 +129,14 @@ if (1) {
 		local $/;
 		is($all, <$fh>, 'entire read matches');
 	};
+
+	my $ref = $gcf->qx(qw(cat-file blob), $buf);
+	is($all, $ref, 'qx read giant single string');
+
+	my @ref = $gcf->qx(qw(cat-file blob), $buf);
+	is($all, join('', @ref), 'qx returned array when wanted');
+	my $nl = scalar @ref;
+	ok($nl > 1, "qx returned array length of $nl");
 }
 
 done_testing();
-- 
EW


^ permalink raw reply related	[relevance 7%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-04-09  9:14     [PATCH 0/3] initial importer work Eric Wong
2016-04-09  9:14  7% ` [PATCH 1/3] git: add support for qx wrapper Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).