gnucash/make-gnucash-patch.in
Dave Peticolas aa4509f0e6 Fix for swig & perl 5.6.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@2547 57a11ea4-9604-0410-9ed3-97b8803252fd
2000-07-09 22:25:00 +00:00

149 lines
3.1 KiB
Plaintext

#!@-PERL-@ -w
#
# This perl script is used to make a patch for your GnuCash
# development work. All patches should be submitted to the
# mailing list gnucash-patches@gnucash.org. For more info
# consult the README.
#
# This script requires the programs 'makepatch', 'gzip',
# 'diff', and 'uuencode'.
#
# Author: Dave Peticolas <peticola@cs.ucdavis.edu>
use strict;
###########################################################
# This section must be configured for your own setup. #
###########################################################
# The directory with the original gnucash sources
my $old = 'gnucash.pristine';
# The directory where you do your development
my $new = 'gnucash';
# The directory where the above two directories reside
my $gnc_home = '/usr/src/misc/gnc';
###########################################################
# This section should not need to be modified. #
###########################################################
# Allow the user to override the defaults with evnt vars.
if($ENV{'GNC_MAKEPATCH_OLD_DIR'}) {
$old = $ENV{'GNC_MAKEPATCH_OLD_DIR'};
}
if($ENV{'GNC_MAKEPATCH_NEW_DIR'}) {
$new = $ENV{'GNC_MAKEPATCH_NEW_DIR'};
}
if($ENV{'GNC_MAKEPATCH_HOME_DIR'}) {
$gnc_home = $ENV{'GNC_MAKEPATCH_HOME_DIR'};
}
# Switch to the home directory
chdir $gnc_home or die "Can't cd!\n";
# Erase the old files
unlink('gnc.diff', 'gnucash.diff.gz', 'gnucash.diff.gz.uue');
# Start out with our basic makepatch arguments
my @args = ('-diff', 'diff -u', '-exclude-vc');
# Add in the exclude patterns from the __DATA__ section
foreach my $pat (<DATA>) {
chomp($pat);
push(@args, '-exclude', $pat) if $pat;
}
# Add the from and to directories for makepatch
push(@args, $old, $new);
# Invoke makepatch with standard out redirected to 'gnucash.diff'
open(OLDOUT, ">&STDOUT");
open(STDOUT, "> gnucash.diff") || die "Can't redirect stdout";
system('makepatch', @args);
close(STDOUT);
open(STDOUT, ">&OLDOUT");
# Make a copy of the ascii diff in 'gnc.diff'
system('cp gnucash.diff gnc.diff');
# Compress the patch
system('gzip -9vf gnucash.diff');
# UU encode the compressed patch
# 'gnucash.diff.gz.uue' is the file you send.
system('uuencode gnucash.diff.gz gnucash.diff.gz > gnucash.diff.gz.uue');
exit(0);
__DATA__
obj
Makefile
Makefile.in
Makefile.init
config.cache
config.log
config.status
config.h
*.tar.gz
*.log
*.bin
*.patch
*.diff
*.diffs
*.bak
xacc
*.xac.*.xac
errs*
.#*
TAGS
#*#
aclocal.m4
libtool
conf.h
stamp-h
configure
.deps
.libs
gnucash.engine.i
gnucash.pm
gnucash-engine-perl5_wrap.c
gnucash-engine-perl5_wrap_int.c
g-wrap-guile
libgncengine.la
libgwrapguile.la
libgwraprs.la
gnc-autogen.h
src/gnucash
src/guile/gnc.c
src/guile/gnc.h
src/guile/gnc.html
src/guile/gnucash.c
src/scm/bootstrap.scm
src/optional/swig/libgncswig.la
src/optional/swig/gnucash.engine_wrap.doc
g-wrap.info
src/quotes/gnc-prices
*.wrap
*.orig
*.rej
*.moc
*.gmo
*.mo
POTFILES
cat-id-tbl.c
gnucash.pot
po/pseudo-source.c
stamp-cat-id
po/extract-macros.perl
src/guile/i18n.h
make-gnucash-patch
rpm/gnucash.spec
src/gnome/glade-cb-gnc-dialogs.c
src/gnome/glade-support-gnc-dialogs.c