📄 update_sources
字号:
#! /usr/bin/perl -w# Maybe I should have used PHP instead? ;)use strict;$| = 1;-f "libmysql.c" or die "$0 must be run from the libmysql directory\n";my $command = shift || usage();$command =~ /^--(?:update|huh|restore)$/ or usage();my $from = shift || '/my/mysql';my @source_dirs = qw/dbug strings mysys libmysql include/;my $source_re = qr/\.(?:cc?|h)$/;my %skip = ( 'ctype_autoconf.c' => 1, # PHP uses a pre-made one 'ctype_extra_sources.c' => 1, # same here 'my_config.h' => 1, # we use php_config.h);opendir D, "." or die "can't opendir .: $!\n";my @files = grep { /$source_re/ and !$skip{$_} } readdir D;closedir D;if ($command eq '--restore'){ foreach (@files) { -f "$_.orig" and system("mv -f $_.orig $_") and die "can't restore $_: $!\n"; } exit 0;}if ($command eq '--huh'){ diff_files(); exit 0;}my %sources;foreach my $d (@source_dirs){ opendir D, "$from/$d" or die "opendir $from/$d: $!\n"; foreach (grep { /$source_re/ } readdir D) { $sources{$_} ||= "$d/$_"; } closedir D;}foreach my $f (@files){ my $s = $sources{$f} or die "can't find source file for $f\n"; unlink "$f.orig"; system("mv $f $f.orig") and die "can't move $f: $!\n"; #print ">> ", scalar(`ls -l $from/$s`), "\n"; print ">> $s\n"; system("cp $from/$s $f") and die "can't copy $from/$s: $!\n"; #print "]] ", scalar(`ls -l $f`), "\n";}system("chmod u+w @files") and die "can't set perms on files: $!\n";system("./fix_copyright @files") and die "can't fix copyright: $!\n";diff_files();exit 0;sub usage{ die <<"EOF";usage: $0 --update [mysql-source-dir] $0 --huh $0 --restore Typical use is: \$ $0 --update 2>&1 > /tmp/php-update.diff \$ @{[$ENV{EDITOR}||'vi']} /tmp/php-update.diff #does it look okay? \$ Monkey around a bit \$ cvs diff -u | less # does this look okay? \$ rm *.origEOF}sub diff_files { foreach my $f (@files) { if (!-f "$f.orig" or !system("diff -u $f.orig $f")) { print STDERR "SAME: $f\n"; unlink "$f.orig"; } else { print STDERR "DIFF: $f\n"; $f eq 'config-win.h' and print STDERR "/n/nDon't forget to undefine HAVE_COMPRESS in $f/n/n/n"; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -