* [PATCH 00/11] www_coderepo: subjective web stuffs
@ 2023-01-24 9:49 7% Eric Wong
2023-01-24 9:49 6% ` [PATCH 05/11] www_coderepo: eliminate debug log footer Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2023-01-24 9:49 UTC (permalink / raw)
To: meta
Aside from avoiding FD waste for /dev/null in common
deployments, there's not much _measurably_ better.
Eric Wong (11):
qspawn: drop lineno from command failure warning
viewvcs: add path name hint based on `b=' query param
viewvcs: prepopulate search bar with dfpost + dfn
www_coderepo: show /$INBOX/?t=$DATE link for commits
www_coderepo: eliminate debug log footer
http: reuse STDIN if it's already /dev/null
viewvcs: expand on path names being "non-authoritative"
viewvcs: show message for 404||500 errors
solver_git: remove extraneous leading `-'
www_coderepo: remove some needless return statements
viewvcs: improve tree glossary view
lib/PublicInbox/HTTP.pm | 8 ++++-
lib/PublicInbox/Qspawn.pm | 2 +-
lib/PublicInbox/RepoTree.pm | 3 +-
lib/PublicInbox/SolverGit.pm | 2 +-
lib/PublicInbox/ViewVCS.pm | 56 ++++++++++++++++++++++++++--------
lib/PublicInbox/WwwCoderepo.pm | 50 +++++++++++++++---------------
t/solver_git.t | 2 +-
7 files changed, 81 insertions(+), 42 deletions(-)
^ permalink raw reply [relevance 7%]
* [PATCH 05/11] www_coderepo: eliminate debug log footer
2023-01-24 9:49 7% [PATCH 00/11] www_coderepo: subjective web stuffs Eric Wong
@ 2023-01-24 9:49 6% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2023-01-24 9:49 UTC (permalink / raw)
To: meta
WwwCoderepo is for viewing blobs already in code repositories,
so there's no place for a debug log showing which mails were
used to arrive at a given blob. The debug footer remains for
/$INBOX/$OID/s/ URLs, of course.
---
lib/PublicInbox/RepoTree.pm | 1 -
lib/PublicInbox/ViewVCS.pm | 12 +++++++++---
lib/PublicInbox/WwwCoderepo.pm | 17 +++++++++++++++--
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/lib/PublicInbox/RepoTree.pm b/lib/PublicInbox/RepoTree.pm
index 4c6ed840..3a848c6f 100644
--- a/lib/PublicInbox/RepoTree.pm
+++ b/lib/PublicInbox/RepoTree.pm
@@ -51,7 +51,6 @@ sub tree_show { # git check_async callback
my ($oid, $type, $size, $ctx) = @_;
return find_missing($ctx) if $type eq 'missing';
- open $ctx->{lh}, '<', \(my $dbg_log = '') or die "open(scalar): $!";
my $res = [ $ctx->{git}, $oid, $type, $size ];
my ($bn) = ($ctx->{-path} =~ m!/?([^/]+)\z!);
if ($type eq 'blob') {
diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm
index b238e832..60cc1376 100644
--- a/lib/PublicInbox/ViewVCS.pm
+++ b/lib/PublicInbox/ViewVCS.pm
@@ -62,8 +62,11 @@ sub dbg_log ($) {
return '<pre>debug log seek error</pre>';
}
$log = do { local $/; <$log> } // do {
- warn "readline(log): $!";
- return '<pre>debug log read error</pre>';
+ if (!eof($log)) {
+ warn "readline(log): $!";
+ return '<pre>debug log read error</pre>';
+ }
+ '';
};
return '' if $log eq '';
$ctx->{-linkify} //= PublicInbox::Linkify->new;
@@ -586,7 +589,10 @@ sub show ($$;$) {
}
$ctx->{fn} = $fn;
$ctx->{-tmp} = File::Temp->newdir("solver.$oid_b-XXXX", TMPDIR => 1);
- open $ctx->{lh}, '+>>', "$ctx->{-tmp}/solve.log" or die "open: $!";
+ unless ($ctx->{lh}) {
+ open $ctx->{lh}, '+>>', "$ctx->{-tmp}/solve.log" or
+ die "open: $!";
+ }
my $solver = PublicInbox::SolverGit->new($ctx->{ibx},
\&solve_result, $ctx);
$solver->{gits} //= [ $ctx->{git} ];
diff --git a/lib/PublicInbox/WwwCoderepo.pm b/lib/PublicInbox/WwwCoderepo.pm
index 5ca8ef55..024a9d8f 100644
--- a/lib/PublicInbox/WwwCoderepo.pm
+++ b/lib/PublicInbox/WwwCoderepo.pm
@@ -8,6 +8,7 @@
package PublicInbox::WwwCoderepo;
use v5.12;
use File::Temp 0.19 (); # newdir
+use POSIX qw(O_RDWR F_GETFL);
use PublicInbox::ViewVCS;
use PublicInbox::WwwStatic qw(r);
use PublicInbox::GitHTTPBackend;
@@ -60,6 +61,15 @@ sub new {
};
$self->{$_} = 10 for qw(summary_branches summary_tags);
$self->{$_} = 10 for qw(summary_log);
+
+ # try reuse STDIN if it's already /dev/null
+ open $self->{log_fh}, '+>', '/dev/null' or die "open: $!";
+ my @l = stat($self->{log_fh}) or die "stat: $!";
+ my @s = stat(STDIN) or die "stat(STDIN): $!";
+ if ("@l[0, 1]" eq "@s[0, 1]") {
+ my $f = fcntl(STDIN, F_GETFL, 0) // die "F_GETFL: $!";
+ $self->{log_fh} = *STDIN{IO} if $f & O_RDWR;
+ }
$self;
}
@@ -216,12 +226,15 @@ sub srv { # endpoint called by PublicInbox::WWW
}
$path_info =~ m!\A/(.+?)/\z! and
($ctx->{git} = $cr->{$1}) and return summary($self, $ctx);
- $path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
- ($ctx->{git} = $cr->{$1}) and
+ if ($path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
+ ($ctx->{git} = $cr->{$1})) {
+ $ctx->{lh} = $self->{log_fh};
return PublicInbox::ViewVCS::show($ctx, $2, $3);
+ }
if ($path_info =~ m!\A/(.+?)/tree/(.*)\z! and
($ctx->{git} = $cr->{$1})) {
+ $ctx->{lh} = $self->{log_fh};
return PublicInbox::RepoTree::srv_tree($ctx, $2) // r(404);
}
^ permalink raw reply related [relevance 6%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-01-24 9:49 7% [PATCH 00/11] www_coderepo: subjective web stuffs Eric Wong
2023-01-24 9:49 6% ` [PATCH 05/11] www_coderepo: eliminate debug log footer 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).