#!@-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 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 () { 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 g-wrap-install Makefile Makefile.init config.cache config.log config.status config.h *.tar.gz *.log *.bin *.patch *.diff *.diffs *.bak xacc *.xac.*.xac errs* .#* TAGS #*# libtool conf.h stamp-h configure .deps .libs *.i gnucash.pm gnucash-engine-perl5_wrap.c g-wrap-guile libgwrapguile.la libgwraprs.la gnc-autogen.h src/g-wrap/gnc.c src/g-wrap/gnc.h src/g-wrap/gnc.html src/guile/gnucash.c src/scm/bootstrap.scm src/swig/perl5/gnucash.engine_wrap.doc g-wrap.info lib/g-wrap/Makefile.in lib/g-wrap/rscheme/g-wrap-rs src/quotes/gnc-prices gtksheet* *.wrap *.orig *.rej src/reports/pathconfig.h *.moc *.gmo *.mo po/Makefile.in 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