Continue work on build-packages. Add replace-text. Make some tools' descriptions one line so build-packages can parse them easily.

This commit is contained in:
Daniel Nichter
2011-07-15 17:50:16 -06:00
parent 5a087dcff6
commit e2e624e855
10 changed files with 264 additions and 33 deletions

View File

@@ -3,4 +3,5 @@ docs/dev/*
docs/user/html docs/user/html
docs/test-coverage/db docs/test-coverage/db
docs/test-coverage/html docs/test-coverage/html
release
.DS_Store .DS_Store

View File

@@ -43,3 +43,4 @@ bin/pt-upgrade
bin/pt-usl bin/pt-usl
bin/pt-variable-advisor bin/pt-variable-advisor
bin/pt-visual-explain bin/pt-visual-explain
docs/percona-toolkit.pod

View File

@@ -13690,8 +13690,7 @@ if ( !caller ) { exit main(@ARGV); }
=head1 NAME =head1 NAME
pt-query-digest - Analyze query execution logs and generate a query report, pt-query-digest - Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more.
filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more.
=head1 SYNOPSIS =head1 SYNOPSIS

View File

@@ -2267,8 +2267,7 @@ if ( !caller ) { exit main(@ARGV); }
=head1 NAME =head1 NAME
pt-query-profiler - Execute SQL statements and print statistics, or measure pt-query-profiler - Execute SQL statements and print statistics, or measure activity caused by other processes.
activity caused by other processes.
=head1 SYNOPSIS =head1 SYNOPSIS

View File

@@ -1841,8 +1841,7 @@ if ( !caller ) { exit main(@ARGV); }
=head1 NAME =head1 NAME
pt-show-grants - Canonicalize and print MySQL grants so you can effectively pt-show-grants - Canonicalize and print MySQL grants so you can effectively replicate, compare and version-control them.
replicate, compare and version-control them.
=head1 SYNOPSIS =head1 SYNOPSIS

View File

@@ -7092,8 +7092,7 @@ if ( !caller ) { exit main(@ARGV); }
=head1 NAME =head1 NAME
pt-table-checksum - Perform an online replication consistency check, or pt-table-checksum - Perform an online replication consistency check, or checksum MySQL tables efficiently on one or many servers.
checksum MySQL tables efficiently on one or many servers.
=head1 SYNOPSIS =head1 SYNOPSIS

View File

@@ -2036,8 +2036,7 @@ exit main(@ARGV) unless caller;
=head1 NAME =head1 NAME
pt-tcp-model - Transform tcpdump into metrics that permit performance and pt-tcp-model - Transform tcpdump into metrics that permit performance and scalability modeling.
scalability modeling.
=head1 SYNOPSIS =head1 SYNOPSIS

View File

@@ -25,9 +25,161 @@ This release of Percona Toolkit includes the following tools:
=over =over
=item * pt-archiver =item pt-align
Archive data. Read lines and split them into words.
=item pt-archiver
Archive rows from a MySQL table into another table or a file.
=item pt-checksum-filter
Filter checksums from pt-table-checksum.
=item pt-collect
Collect information from a server for some period of time.
=item pt-config-diff
Diff MySQL configuration files and server variables.
=item pt-deadlock-logger
Extract and log MySQL deadlock information.
=item pt-diskstats
Read a file generated from /proc/diskstats and summarize it.
=item pt-duplicate-key-checker
Find duplicate indexes and foreign keys on MySQL tables.
=item pt-fifo-split
Split files and pipe lines to a fifo without really splitting.
=item pt-find
Find MySQL tables and execute actions, like GNU find.
=item pt-fk-error-logger
Extract and log MySQL foreign key errors.
=item pt-heartbeat
Monitor MySQL replication delay.
=item pt-index-usage
Read queries from a log and analyze how they use indexes.
=item pt-kill
Kill MySQL queries that match certain criteria.
=item pt-log-player
Replay MySQL query logs.
=item pt-mext
Aggregate and summarize mysqladmin extended output.
=item pt-mysql-summary
Summarize MySQL information in a nice way.
=item pt-online-schema-change
Perform online, non-blocking table schema changes.
=item pt-pmp
Aggregate GDB stack traces for a selected program.
=item pt-profile-compact
Compact the output from pt-query-profiler.
=item pt-query-advisor
Analyze queries and advise on possible problems.
=item pt-query-digest
Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more.
=item pt-query-profiler
Execute SQL statements and print statistics, or measure activity caused by other processes.
=item pt-rel
Make each number in a line of text relative to the previous matching line.
=item pt-show-grants
Canonicalize and print MySQL grants so you can effectively replicate, compare and version-control them.
=item pt-sift
Browses the files created by the collect tool.
=item pt-slave-delay
Make a MySQL slave server lag behind its master.
=item pt-slave-find
Find and print replication hierarchy tree of MySQL slaves.
=item pt-slave-restart
Watch and restart MySQL replication after errors.
=item pt-stalk
Watch MySQL and run the 'collect' program when some condition becomes true.
=item pt-summary
Summarize system information in a nice way.
=item pt-table-checksum
Perform an online replication consistency check, or checksum MySQL tables efficiently on one or many servers.
=item pt-table-sync
Synchronize MySQL table data efficiently.
=item pt-tcp-model
Transform tcpdump into metrics that permit performance and scalability modeling.
=item pt-trend
Compute statistics over a set of time-series data points.
=item pt-upgrade
Execute queries on multiple servers and check for differences.
=item pt-usl
Model Universal Scalability Law.
=item pt-variable-advisor
Analyze MySQL variables and advise on possible problems.
=item pt-visual-explain
Format EXPLAIN output as a tree.
=back =back
@@ -162,7 +314,7 @@ tools support at least the following:
=over =over
=item * A =item A
Specifies the default character set for the connection. Specifies the default character set for the connection.
@@ -178,11 +330,11 @@ library's settings don't match, there could be problems. You can use the
defaults file to specify the client library's character set, however. See the defaults file to specify the client library's character set, however. See the
description of the F part below. description of the F part below.
=item * D =item D
Specifies the connection's default database. Specifies the connection's default database.
=item * F =item F
Specifies a defaults file the mysql client library (the C client library used by Specifies a defaults file the mysql client library (the C client library used by
DBD::mysql, I<not Percona Toolkit itself>) should read. The tools all read the DBD::mysql, I<not Percona Toolkit itself>) should read. The tools all read the
@@ -205,26 +357,27 @@ L<"A"> part described above, this will actually instruct the client library
(DBD::mysql) to change the character set it uses internally, which cannot be (DBD::mysql) to change the character set it uses internally, which cannot be
accomplished any other way as far as I know, except for C<utf8>. accomplished any other way as far as I know, except for C<utf8>.
=item * P =item h
Hostname or IP address for the connection.
=item p
Password to use when connecting.
=item P
Port number to use for the connection. Note that the usual special-case Port number to use for the connection. Note that the usual special-case
behaviors apply: if you specify C<localhost> as your hostname on Unix systems, behaviors apply: if you specify C<localhost> as your hostname on Unix systems,
the connection actually uses a socket file, not a TCP/IP connection, and thus the connection actually uses a socket file, not a TCP/IP connection, and thus
ignores the port. ignores the port.
=item * S =item S
Socket file to use for the connection (on Unix systems). Socket file to use for the connection (on Unix systems).
=item * h =item u
Hostname or IP address for the connection.
=item * p
Password to use when connecting.
=item * u
User for login if not current user. User for login if not current user.

View File

@@ -42,6 +42,12 @@ DEB=$BRANCH/config/deb
RPM=$BRANCH/config/rpm RPM=$BRANCH/config/rpm
RELEASE=$BRANCH/release RELEASE=$BRANCH/release
# ############################################################################
# Programs and their options
# ############################################################################
TAR=${TAR:-tar}
# ############################################################################ # ############################################################################
# Subroutines # Subroutines
# ############################################################################ # ############################################################################
@@ -138,7 +144,8 @@ make_manifest() {
echo $file >> MANIFEST echo $file >> MANIFEST
fi fi
done done
find bin/pt-* >> MANIFEST find bin -type f -depth 1 >> MANIFEST
find docs -type f -depth 1 >> MANIFEST
echo "OK" echo "OK"
} }
@@ -146,16 +153,68 @@ update_percona_toolkit_pod() {
cd $BRANCH/bin cd $BRANCH/bin
local pod=$DOCS/percona-toolkit.pod local pod=$DOCS/percona-toolkit.pod
local tool_list=/tmp/percona-tool-list.pod
echo -n "Updating TOOLS section in percona-toolkit.pod: "
echo "=head1 TOOLS
This release of Percona Toolkit includes the following tools:
=over
" > $tool_list
for tool in *; do for tool in *; do
desc=$(grep -A 2 '^=head1 NAME' $tool | tail -n 1 | sed 's/ - /:/' | cut -d':' -f2) desc=$(grep -A 2 '^=head1 NAME' $tool | tail -n 1 | sed 's/ - /:/' | cut -d':' -f2)
echo "=item $tool echo "=item $tool
$desc $desc
" " >> $tool_list
done done
echo "=over" >> $pod echo "=back
For more free, open-source software developed Percona, visit
L<http://www.percona.com/software/>.
" >> $tool_list
cat $pod | ../util/replace-text -v from='^=head1 TOOLS' -v file=$tool_list -v to='^=head1' > $pod.tmp
rm $tool_list
if [ -z "$(podchecker $pod.tmp 2>&1 | grep -i 'pod syntax OK')" ]; then
die "POD syntax errors; run podchecker $pod.tmp"
fi
mv $pod.tmp $pod
echo "OK"
}
build_tar() {
cd $BRANCH
local pkg="percona-toolkit-$VERSION"
local pkg_dir="$RELEASE/$pkg"
echo -n "Building $pkg.tar.gz: "
if [ ! -d $RELEASE ]; then
mkdir $RELEASE
else
rm -rf $RELEASE/*
fi
mkdir $pkg_dir
mkdir "$pkg_dir/bin" "$pkg_dir/docs" "$pkg_dir/lib"
for file in `cat MANIFEST`; do
cp $file $pkg_dir/$file
done
cd $RELEASE
$TAR czf "$pkg.tar.gz" $pkg
echo "OK"
} }
# ############################################################################ # ############################################################################
@@ -170,14 +229,17 @@ fi
DATE=$(date -u +'%F') DATE=$(date -u +'%F')
VERSION=$1 VERSION=$1
# check_version #check_version
# update_version #update_version
YEAR=$(date -u +'%Y'); YEAR=$(date -u +'%Y');
#update_copyright_year #update_copyright_year
#make_manifest #make_manifest
update_percona_toolkit_pod #update_percona_toolkit_pod
build_tar
exit $exit_status exit $exit_status

19
util/replace-text Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env awk -f
BEGIN {
if ( from == "" || file == "" || to == "" ) {
print "Usage: replace-text FROM_PATTERN TEXT_FILE TO_PATTERN"
exit
}
}
$0 ~ from {
system("cat " file)
while ( getline ) {
if ( $0 ~ to )
break
}
}
{ print }