1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
#!/usr/bin/perl
#
# 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>
###########################################################
# 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
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.h
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
include/messages_i18n.h
lib/g-wrap/aclocal.m4
lib/g-wrap/conf-h.in
lib/g-wrap/stamp-h.in
lib/g-wrap/*/Makefile.in
src/guile/i18n.h
|