<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9c7c90f302a251727d2753a85cf10effa84b9c5b">https://github.com/macports/macports-ports/commit/9c7c90f302a251727d2753a85cf10effa84b9c5b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 9c7c90f p5-mytop: update to 1.7
</span>9c7c90f is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 9c7c90f302a251727d2753a85cf10effa84b9c5b
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Nov 15 03:47:55 2019 +1100
<span style='display:block; white-space:pre;color:#404040;'> p5-mytop: update to 1.7
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also add FreeBSD patch.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/33693
</span>---
perl/p5-mytop/Portfile | 22 ++--
perl/p5-mytop/files/patch-mytop | 280 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 292 insertions(+), 10 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/perl/p5-mytop/Portfile b/perl/p5-mytop/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6290758..a6352d4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/perl/p5-mytop/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/perl/p5-mytop/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,31 +2,33 @@
</span>
PortSystem 1.0
PortGroup perl5 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span>
perl5.branches 5.26 5.28 5.30
<span style='display:block; white-space:pre;background:#ffe0e0;'>-perl5.setup mytop 1.2 ../../authors/id/J/JZ/JZAWODNY
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+perl5.setup mytop 1.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup jzawodn mytop 437f2ef8d3fce02eafe935ddbf860d1dfbc43f7d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version [perl5_convert_version ${perl5.moduleversion}]
</span> license GPL-2
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage https://metacpan.org/release/JZAWODNY//${perl5.module}-${perl5.moduleversion}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage ${github.homepage}
</span>
description display MySQL server performance info like `top'
long_description ${description}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 b6160f2c4e4c391c6e02ca4af3b2799d56021f69 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 095c1dbfe6efdd2bdd68bbd00250263e98d4cb2175e29456c137946ae5171b03
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites {*}${github.master_sites}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 6059921ee7c230c7de0b2c5e1924d90ff4ff9329 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 8471c35926b07a7a6de653b1825321bba7c36c3c7992075c908ef6bb3a844fbb
</span>
platforms darwin
supported_archs noarch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${perl5.major} != ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${perl5.major} ne ""} {
</span> depends_lib-append \
port:p${perl5.major}-dbi \
port:p${perl5.major}-dbd-mysql \
port:p${perl5.major}-term-readkey
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url https://cpan.metacpan.org/authors/id/J/JZ/JZAWODNY
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex "${perl5.module}-(\\d+(?:\\.\\d+)*)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://svnweb.freebsd.org/ports/head/databases/mytop/files/patch-mytop?revision=374121
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles patch-mytop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/perl/p5-mytop/files/patch-mytop b/perl/p5-mytop/files/patch-mytop
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..02ebfb9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/perl/p5-mytop/files/patch-mytop
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,280 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mytop.orig 2013-03-21 21:26:04 UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mytop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -189,22 +189,24 @@ if ($HAS_COLOR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *RESET = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *YELLOW = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *RED = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *GREEN = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *BLUE = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *WHITE = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *BOLD = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *RESET = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *YELLOW = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *RED = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *GREEN = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *BLUE = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *WHITE = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *BOLD = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *MAGENTA = sub { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $RESET = RESET() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $YELLOW = YELLOW() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $RED = RED() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $GREEN = GREEN() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $BLUE = BLUE() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $WHITE = WHITE() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my $BOLD = BOLD() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $RESET = RESET() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $YELLOW = YELLOW() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $RED = RED() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $GREEN = GREEN() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $BLUE = BLUE() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $WHITE = WHITE() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $BOLD = BOLD() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my $MAGENTA = MAGENTA() || '';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Connect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,6 +374,10 @@ while (1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ require Data::Dumper;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ print Data::Dumper::Dumper([\%config]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ReadKey(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (-M $0) { # Restart application, if modified (for debugging)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exec('perl', $0, @ARGV);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## m - mode swtich to qps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -380,7 +386,7 @@ while (1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $config{mode} = 'qps';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Clear() unless $config{batchmode};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print "Queries Per Second [hit q to exit this mode]\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print "Queries Per Second [hit q to exit, hit t for top mode]\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ next;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -803,8 +809,15 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Queries per second...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my $avg_queries_per_sec = sprintf("%.2f", $STATUS{Questions} / $STATUS{Uptime});
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my $num_queries = $STATUS{Questions};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my ($num_queries, $old_num_queries);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(defined($STATUS{Queries})) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $num_queries = $STATUS{Queries};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $old_num_queries = $OLD_STATUS{Queries};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $num_queries = $STATUS{Questions};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $old_num_queries = $OLD_STATUS{Questions};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $avg_queries_per_sec = sprintf("%.2f", $num_queries / $STATUS{Uptime});
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my @t = localtime(time);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -822,26 +835,26 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $lines_left--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf " Queries: %-5s qps: %4.0f Slow: %7s Se/In/Up/De(%%): %02.0f/%02.0f/%02.0f/%02.0f \n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- make_short( $STATUS{Questions} ), # q total
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $STATUS{Questions} / $STATUS{Uptime}, # qps, average
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf " Queries: %-6s qps: %4.0f Slow: %7s Se/In/Up/De(%%): %02.0f/%02.0f/%02.0f/%02.0f \n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ make_short( $num_queries ), # q total
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $num_queries / $STATUS{Uptime}, # qps, average
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make_short( $STATUS{Slow_queries} ), # slow
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # hmm. a Qcache hit is really a select and should be counted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $STATUS{Questions},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $STATUS{Questions},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 100 * ($STATUS{Com_update} ) / $STATUS{Questions},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 100 * $STATUS{Com_delete} / $STATUS{Questions};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $num_queries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $num_queries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 100 * ($STATUS{Com_update} ) / $num_queries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 100 * $STATUS{Com_delete} / $num_queries;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $lines_left--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ($t_delta)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my $q_diff = ( $STATUS{Questions} - $OLD_STATUS{Questions} );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions} / $t_delta = $q_diff\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $q_diff = ( $num_queries - $old_num_queries );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# print("q_diff: $num_queries - $old_num_queries / $t_delta = $q_diff\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf(" qps now: %4.0f Slow qps: %3.1f Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f \n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ( $num_queries - $old_num_queries ) / $t_delta,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ( # slow now (qps)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ($STATUS{Slow_queries} ) ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ( $STATUS{Slow_queries} - $OLD_STATUS{Slow_queries} ) / $t_delta :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -851,7 +864,7 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $STATUS{Threads_running},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $STATUS{Threads_cached},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ($STATUS{Qcache_hits}||0) - ($OLD_STATUS{Qcache_hits}||0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ) ) / ($q_diff ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (100 * ($STATUS{Com_insert} - $OLD_STATUS{Com_insert} +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -869,11 +882,11 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ($have_query_cache and $STATUS{Com_select} and $query_cache_hits)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf(" Cache Hits: %-5s Hits/s: %4.1f Hits now: %5.1f Ratio: %4.1f%% Ratio now: %4.1f%% \n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf(" Cache Hits: %-5s Hits/s: %4.1f Hits now: %5.1f Ratio: %4.1f%% Ratio now: %4.1f%% \n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make_short($STATUS{Qcache_hits}), # cache hits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $STATUS{Qcache_hits} / $STATUS{Uptime}, # hits / sec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ($t_delta) ? ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits}) / $t_delta : 0, # now / s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # ratio:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # ratio:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 100 * ($STATUS{Qcache_hits}) / ($STATUS{Qcache_hits} + $STATUS{Com_select} ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ($t_delta) ? # ratio now
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 100 * ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits} ) /
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -892,7 +905,42 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make_short(($STATUS{Bytes_received} - $OLD_STATUS{Bytes_received}) / $t_delta ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make_short(($STATUS{Bytes_sent} - $OLD_STATUS{Bytes_sent}) / $t_delta ))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ($t_delta);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print "\n\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my @master_status = Hashes("show master status");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (@master_status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ foreach my $m (@master_status) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print " Master: $m->{File}/$m->{Position} ",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "do: ", GREEN(), "$m->{Binlog_Do_DB} ", RESET(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "ign: ", MAGENTA(), $m->{Binlog_Ignore_DB}, RESET(), "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #$line_prefix = ' ' x length($line_prefix);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $lines_left--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my @slave_status = Hashes("show slave status");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (@slave_status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $line_prefix = " Slave: ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ foreach my $s (@slave_status) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print $line_prefix, BOLD(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ($s->{Slave_IO_Running} eq 'Yes'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && $s->{Slave_SQL_Running} eq 'Yes'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && $s->{Last_Errno} == 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ? ($s->{Seconds_Behind_Master} > 60 ? BOLD('WARN') : GREEN('OK ')) : RED('ERR ')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ), RESET(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " Delay: ",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ defined($s->{Seconds_Behind_Master}) ? sprintf('%03d:%02d', int($s->{Seconds_Behind_Master} / 60), $s->{Seconds_Behind_Master} % 60) : '---:--',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " $s->{Master_User}\@$s->{Master_Host}: ",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "$s->{Master_Log_File}/$s->{Read_Master_Log_Pos} ",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #$line_prefix = ' ' x length($line_prefix);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $lines_left--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $lines_left--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -907,32 +955,22 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Threads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ##
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #my $sz = $width - 52;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my @sz = (9, 9, 15, 10, 9, 6);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my $used = scalar(@sz) + Sum(@sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- my $free = $width - $used;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print BOLD();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf "%8s %9s %15s %10s %9s %6s %-${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'Id','User','Host/IP','DB','Time', 'Cmd', 'Query or State';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print RESET();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ## Id User Host DB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf "%9s %9s %15s %10s %9s %6s %-${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- '--','----','-------','--','----', '---', '----------';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $lines_left -= 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my $proc_cmd = "show full processlist";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my @data = Hashes($proc_cmd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $max_id = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach my $thread (@data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ last if not $lines_left;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ($max_id < $thread->{Id}) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $max_id = $thread->{Id};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Drop Domain Name, unless it looks like an IP address. If
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## it's an IP, we'll strip the port number because it's rarely
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## interesting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -955,8 +993,11 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $thread->{Host} =~ s/:\d+$//;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my $host = gethostbyaddr(inet_aton($thread->{Host}), AF_INET);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $host =~ s/^([^.]+).*/$1/;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $thread->{Host} = $host;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ($host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $host =~ s/^([^.]+).*/$1/;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $thread->{Host} = $host;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Fix possible undefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -993,6 +1034,23 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #my $sz = $width - 52;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $max_id_size = length $max_id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my @sz = ($max_id_size, 9, 15, 10, 9, 6);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $used = scalar(@sz) + Sum(@sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ my $free = $width - $used;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print BOLD();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf "%${max_id_size}s %9s %15s %10s %9s %6s %-${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'Id','User','Host/IP','DB','Time', 'Cmd', 'Query or State';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print RESET();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ## Id User Host DB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf "%${max_id_size}s %9s %15s %10s %9s %6s %-${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ '--','----','-------','--','----', '---', '----------';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## Sort by idle time (closest thing to CPU usage I can think of).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my @sorted;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1047,7 +1105,7 @@ sub GetData()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ print GREEN() if $thread->{Command} eq 'Connect';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf "%9d %9.9s %15.15s %10.10s %9d %6.6s %-${free}.${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf "%${max_id_size}d %9.9s %15.15s %10.10s %9d %6.6s %-${free}.${free}s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $thread->{Id}, $thread->{User}, $thread->{Host}, $thread->{db},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $thread->{Time}, $thread->{Command}, $smInfo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1102,8 +1160,8 @@ sub GetInnoDBStatus()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my @data = Hashes("SHOW INNODB STATUS");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ open P, "|$config{pager}" or die "$!";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print keys %{$data[0]};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- print $data[0]->{Status},"\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print P keys %{$data[0]};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print P $data[0]->{Status},"\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close P;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>