mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Remove make-gnucash-patch and only suggest svn diff' or plain
diff -urN'.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17012 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
c45b4e668c
commit
795fac13d5
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,7 +39,6 @@ lib/libqof/backend/file/qsf-dir.h
|
||||
lib/libqof/qof/qofla-dir.h
|
||||
libtool
|
||||
ltmain.sh
|
||||
make-gnucash-patch
|
||||
make-gnucash-potfiles
|
||||
missing
|
||||
mkinstalldirs
|
||||
|
12
Makefile.am
12
Makefile.am
@ -6,7 +6,7 @@ docdir = ${GNC_DOC_INSTALL_DIR}
|
||||
GNC_CTAGS_FILE = @GNC_CTAGS_FILE@
|
||||
GNC_ETAGS_FILE = @GNC_ETAGS_FILE@
|
||||
|
||||
noinst_DATA = make-gnucash-patch make-gnucash-potfiles
|
||||
noinst_DATA = make-gnucash-potfiles
|
||||
|
||||
dist_doc_DATA = \
|
||||
AUTHORS \
|
||||
@ -39,7 +39,6 @@ dist_doc_DATA = \
|
||||
|
||||
EXTRA_DIST = \
|
||||
gnucash.lsm \
|
||||
make-gnucash-patch.in \
|
||||
make-gnucash-potfiles.in \
|
||||
macros/aqbanking.m4 \
|
||||
macros/as-scrub-include.m4 \
|
||||
@ -82,13 +81,6 @@ EXTRA_DIST = \
|
||||
## brackets here, instead of the usual @...@. This prevents autoconf
|
||||
## from substituting the values directly into the left-hand sides of
|
||||
## the sed substitutions.
|
||||
make-gnucash-patch: make-gnucash-patch.in Makefile
|
||||
rm -f $@.tmp
|
||||
sed < $< > $@.tmp \
|
||||
-e 's:@-PERL-@:${PERL}:g'
|
||||
chmod +x $@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
make-gnucash-potfiles: make-gnucash-potfiles.in Makefile
|
||||
rm -f $@.tmp
|
||||
sed < $< > $@.tmp \
|
||||
@ -99,7 +91,7 @@ make-gnucash-potfiles: make-gnucash-potfiles.in Makefile
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract intltool-update intltool-merge\
|
||||
cscope.files cscope.out etags.files make-gnucash-patch \
|
||||
cscope.files cscope.out etags.files \
|
||||
make-gnucash-potfiles po/.intltool-merge-cache
|
||||
|
||||
cscope.files:
|
||||
|
18
README
18
README
@ -439,10 +439,20 @@ Before you start developing GnuCash, you should do the following:
|
||||
|
||||
Submitting a Patch:
|
||||
|
||||
This section has been moved to the file README.patches
|
||||
Once you have done some work that you would like to submit, you need
|
||||
to send a patch. There are two ways to submit a patch. First, if
|
||||
you're using SVN and only made changes to existing SVN files you
|
||||
can generate the patch using:
|
||||
|
||||
Please consult that file for details on using the script provided to make
|
||||
patches suitable for submitting to the GnuCash development team.
|
||||
svn diff > /tmp/mypatch
|
||||
|
||||
and send /tmp/mypatch to gnucash-devel@gnucash.org with `[PATCH]'
|
||||
prefixed to the Subject: of the email. Note that this
|
||||
ONLY WORKS if you have NOT added any new files to the source tree.
|
||||
|
||||
Thank you.
|
||||
If your patch adds new files, use the `-N' flag to diff between a
|
||||
clean directory and your development directory. E.g.
|
||||
|
||||
$ diff -urN {gnucash-pristine} {gnucash-mydevel} > /tmp/mypatch
|
||||
|
||||
Thank you.
|
||||
|
244
README.patches
244
README.patches
@ -1,244 +0,0 @@
|
||||
############################################################
|
||||
Gnucash 1.9.x README.patches file.
|
||||
|
||||
NOTE: THIS IS A DEVELOPMENT RELEASE!!! THIS VERSION HAS NOT
|
||||
BEEN TESTED PROPERLY AND MAY DO ABSOLUTELY ANYTHING!
|
||||
|
||||
USE AT YOUR OWN RISK (AND KEEP *LOTS* OF BACKUPS)
|
||||
|
||||
If you want something a bit more tested, please use the
|
||||
1.8 stable series.
|
||||
------------------------------------------------------------
|
||||
|
||||
Submitting a Patch:
|
||||
|
||||
Once you have done some work that you would like to submit, you need
|
||||
to send a patch. There are two ways to submit a patch. First, if
|
||||
you're using SVN and only made changes to existing SVN files you
|
||||
can generate the patch using:
|
||||
|
||||
svn diff > /tmp/mypatch
|
||||
|
||||
and send /tmp/mypatch to gnucash-devel@gnucash.org with `[PATCH]'
|
||||
prefixed to the Subject: of the email. Note that this
|
||||
ONLY WORKS if you have NOT added any new files to the source tree.
|
||||
|
||||
If your patch adds new files, use the `-N' flag to diff between a
|
||||
clean directory and your development directory. E.g.
|
||||
|
||||
$ diff -urN {gnucash-pristine} {gnucash-mydevel} > /tmp/mypatch
|
||||
|
||||
*******************************************************************
|
||||
NOTE: The rest of this file describes an out-of-date utility that has
|
||||
not been adapted to SVN. Don't use it.
|
||||
*******************************************************************
|
||||
|
||||
If you've added new files then you should use a script called
|
||||
"make-gnucash-patch" to help you create the patch for submission.
|
||||
|
||||
The script make-gnucash-patch is a perl script provided with the
|
||||
gnucash distribution that you can use to create your patch. The
|
||||
rest of this file explains how to use that perl script.
|
||||
|
||||
This file comes in two parts:
|
||||
- A quick summary of the common ways to use make-gnucash-patch; and
|
||||
- A "users guide" style section giving detailed information on all
|
||||
the options for make-gnucash-patch.
|
||||
|
||||
COMMON USAGE
|
||||
|
||||
There are two methods.
|
||||
|
||||
1) Run ./make-gnucash-patch in your source directory. The script
|
||||
will then create two directories ../diff and ../tmp. In ../tmp
|
||||
it will then do a checkout of the cvs sources. If gnucash has
|
||||
already been checked out into this directory then only an update
|
||||
will occur. As a consequence of this you should make sure you
|
||||
are merged with current CVS before running make-gnucash-patch or
|
||||
you will find parts of the patch are reversing recent changes in
|
||||
CVS.
|
||||
|
||||
make-gnucash-patch will then use makepatch to create a patch
|
||||
between the original directory and ../tmp/gnucash. makepatch
|
||||
will ask you for a description of the patch. And then the diff
|
||||
will be written to the diff file
|
||||
../diffs/gnucash-YYYYMMDD-hhmmss-<username>.diff.gz where Y=year,
|
||||
M=month, D=day, h=hour, m=minute, and s=second.
|
||||
|
||||
make-gnucash-patch will then uuencode the diff to
|
||||
../diffs/<samefilename>.uue.
|
||||
|
||||
There are three vars you can set in a ~/.gnucash-patch.rc file.
|
||||
The file should look like this
|
||||
|
||||
----------------------------------------------------------------------
|
||||
# -*- perl -*-
|
||||
|
||||
$::should_uuencode = 0;
|
||||
$::ask_description = 0;
|
||||
$::diffcmd = "diff -up";
|
||||
|
||||
1;
|
||||
----------------------------------------------------------------------
|
||||
This is basically a perl file that is sourced by the script. If
|
||||
you don't want the diff to be uuencoded (say you'll send the
|
||||
patch in email using mime and don't need it double encoded). Set
|
||||
$::should_uuencode to 0. If you don't want makepatch to ask you
|
||||
for the patch description (so the process is more automated
|
||||
possibly) set $::ask_description to 0. If you want to use a
|
||||
different diff command (not recommended for most) set $::diffcmd
|
||||
to something else (say, "gdiff -up").
|
||||
|
||||
2) The second method is basically described below but it also
|
||||
includes the vars you can set from above. This method gives you
|
||||
more control over which directories are used.
|
||||
|
||||
First, set up your development directories as follows:
|
||||
|
||||
< GnuCash home development directory >
|
||||
|
|
||||
|---- < directory containing original GnuCash sources >
|
||||
|
|
||||
|---- < directory containing your modified GnuCash sources >
|
||||
|
||||
A concrete example of those directories might be:
|
||||
|
||||
/home/me/gnucash
|
||||
|
|
||||
|---- /home/me/gnucash/gnucash.pristine (original sources)
|
||||
|
|
||||
|---- /home/me/gnucash/gnucash.mywork (original sources + my edits)
|
||||
|
||||
Copy the make-gnucash-patch script to the home development
|
||||
directory (/home/me/gnucash above). Now set three environment
|
||||
variables to reflect the names of your directories. Given the
|
||||
names above, you would use:
|
||||
|
||||
export GNC_MAKEPATCH_OLD_DIR=gnucash.pristine
|
||||
export GNC_MAKEPATCH_NEW_DIR=gnucash.mywork
|
||||
export GNC_MAKEPATCH_HOME_DIR=/home/me/gnucash
|
||||
|
||||
Right before you make your patch, make sure *both* your working
|
||||
and your pristine directories are in sync with cvs. Run 'cvs -z3
|
||||
update -dP' in both directories to ensure that is the
|
||||
case. Updating from cvs in your working directory may cause
|
||||
conficts in a file. You must resolve those conficts before making
|
||||
a patch.
|
||||
|
||||
Now run the script. Note that this script requires the programs
|
||||
'makepatch', 'gzip', a 'diff' work-a-like, and 'uuencode' (and, of
|
||||
course, 'perl') to run.
|
||||
|
||||
The same files will be generated for this method as the last
|
||||
(../diffs/*.diff.gz and ../diffs/*.diff.gz.uue).
|
||||
|
||||
USERS GUIDE
|
||||
|
||||
make-gnucash-patch supports a number of ways of providing required
|
||||
information. Some information can be provided through the use of
|
||||
environment variables or in the .gnucash-patch.rc file in your
|
||||
home directory. All information can be provided by command-line
|
||||
options.
|
||||
|
||||
In all cases, the options given on the command-line override the
|
||||
information in both environment variables and the .gnucash-patch.rc
|
||||
file.
|
||||
Environment variables (where permitted) will override the
|
||||
.gnucash-patch.rc file.
|
||||
|
||||
The general format for using make-gnucash-patch is:
|
||||
./make-gnucash-patch <options>
|
||||
|
||||
where valid options are (in arbitrary order):
|
||||
--help, --h Display a short help message explaining available
|
||||
options.
|
||||
|
||||
--prefix "homedir" Specifies the home directory path to use. This path is
|
||||
prepended to both the new and old directory names to
|
||||
give the full path for those directories.
|
||||
Defaults to: the parent directory.
|
||||
Environment variable: GNC_MAKEPATCH_HOME_DIR
|
||||
|
||||
--old "olddir" The name of the directory containing the "pristine" or
|
||||
unmodified copy of the gnucash CVS tree.
|
||||
The directory path as determined by --prefix is prepended
|
||||
to this name to give the full directory path.
|
||||
Defaults to: ../tmp and will create if it doesn't exist.
|
||||
Environment variable: GNC_MAKEPATCH_OLD_DIR
|
||||
|
||||
--new "newdir" The name of the directory containing the modified copy of
|
||||
the gnucash CVS tree.
|
||||
The directory path as determined by --prefix is prepended
|
||||
to this name to give the full directory path.
|
||||
Defaults to: the current directory.
|
||||
Environment variable: GNC_MAKEPATCH_NEW_DIR
|
||||
|
||||
--diff "diffname" The name to give to the output ("diff") file containing
|
||||
the patch code.
|
||||
Defaults to: gnucash-YYYYMMDD-HHmmSS-XXXX.diff
|
||||
where: YYYY = current year (4 digit form)
|
||||
MM = current month (2 digit form)
|
||||
DD = current date (2 digit form)
|
||||
HH = current hour (24-hour 2 digit form)
|
||||
mm = current minutes (2 digit form)
|
||||
SS = current seconds (2 digit form)
|
||||
XXXX = userid of current user (arbitrary length)
|
||||
|
||||
--diffcmd "command" The command to give to makepatch to generate the
|
||||
differences between two files.
|
||||
*NOT* Recommended for most users, only for those whom
|
||||
diff -up is non-functional.
|
||||
Defaults to: diff -up
|
||||
|
||||
--file "filename" Generate a patch for ONLY this file. The path within
|
||||
the CVS tree must be specified (eg. src/MultiLedger.c) or
|
||||
the file cannot be matched. You can specify multiple files
|
||||
by seperating them by commas. You can also include this
|
||||
option multiple times.
|
||||
You *CANNOT* use this option with wildcards, regexps, or
|
||||
partial matches.
|
||||
Defaults to: none.
|
||||
See Also: --manifest
|
||||
|
||||
--manifest "file" Use "file" as a manifest file (file that contains a list
|
||||
of all files to be compared in the making of the diff).
|
||||
Manifest files must contain one filename per line. Lines
|
||||
starting with # are ignored.
|
||||
|
||||
--ignore "igname" Name of the file in the parent directory which contains
|
||||
regular expressions matching files which are to be excluded
|
||||
from the patch. This is in addition to a number of files
|
||||
which are automatically excluded by the script.
|
||||
Defaults to: none.
|
||||
|
||||
--uuencode Specifies whether the resultant diff file should be
|
||||
--nouuencode uuencoded or not. uuencoding is a way of encrypting the file
|
||||
so that it is less likely to be corrupted during transmission
|
||||
over the internet. You should generally use it.
|
||||
Defaults to: On.
|
||||
.gnucash-patch.rc file: Yes
|
||||
("$::should_uuencode = 0;" to override default).
|
||||
|
||||
--zip Specifies whether the resultant diff file should be
|
||||
--nozip compressed or not. This is not always necessary when the
|
||||
patch is a small one.
|
||||
Defaults to: On.
|
||||
|
||||
--ask Controls whether makepatch should ask for a description of
|
||||
--noask this patch or not.
|
||||
Defaults to: On.
|
||||
.gnucash-patch.rc file: Yes
|
||||
("$::ask_description = 0;" to override default).
|
||||
|
||||
|
||||
THINGS TO NOTE
|
||||
- the script assumes (when using defaults) that it is being executed in the
|
||||
top directory of the modified CVS tree. This can be overridden by specifying
|
||||
prefix, old, and new directories.
|
||||
- the script assumes that both the "pristine" and modified copy are children
|
||||
of the same parent directory.
|
||||
- the script will check out a "pristine" copy of the CVS tree automatically if
|
||||
it cannot find the old directory you specify.
|
||||
|
||||
|
||||
Thanks in advance for your contribution!
|
@ -1,312 +0,0 @@
|
||||
#!@-PERL-@ -w
|
||||
# -*- 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-devel@gnucash.org. For more info
|
||||
# consult README.patches
|
||||
#
|
||||
# WARNING: By default, this script will checkout an entire
|
||||
# up to date copy of the source tree in ../tmp/gnucash/.
|
||||
#
|
||||
# In order to prevent patches which reverse recent changes
|
||||
# made in CVS, make sure to "cvs update" in both
|
||||
# directories before running make-gnucash-patch.
|
||||
#
|
||||
# This script requires the programs 'makepatch', 'gzip',
|
||||
# a 'diff' work-a-like, and 'uuencode'.
|
||||
#
|
||||
# Author: Dave Peticolas <dave@krondo.com>
|
||||
|
||||
use strict;
|
||||
|
||||
use File::Basename;
|
||||
use Getopt::Long;
|
||||
|
||||
$::ask_description = 1;
|
||||
$::should_uuencode = 1;
|
||||
$::diffcmd = "diff -up";
|
||||
|
||||
die "This utility has not been updated to use SVN. Sorry, just use diff(1).";
|
||||
|
||||
my $rcfile = $ENV{"HOME"} . "/.gnucash-patch.rc";
|
||||
|
||||
if (-f $rcfile) {
|
||||
require $rcfile;
|
||||
}
|
||||
|
||||
###########################################################
|
||||
# This section must be configured for your own setup. #
|
||||
###########################################################
|
||||
|
||||
# The directory with the original gnucash sources
|
||||
my $old = undef;
|
||||
|
||||
chomp(my $cwd = `pwd`);
|
||||
|
||||
my ($new, $gnc_home) = fileparse($cwd);
|
||||
|
||||
###########################################################
|
||||
# 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'};
|
||||
}
|
||||
|
||||
###########################################################
|
||||
# Make sure makepatch exists before going on #
|
||||
###########################################################
|
||||
|
||||
open(OLDOUT, ">&STDOUT");
|
||||
open(OLDERR, ">&STDERR");
|
||||
open(STDOUT, "> /dev/null") || die "Can't redirect stdout";
|
||||
open(STDERR, "> /dev/null") || die "Can't redirect stderr";
|
||||
my $test = system('makepatch', "-help");
|
||||
close(STDOUT);
|
||||
close(STDERR);
|
||||
open(STDOUT, ">&OLDOUT");
|
||||
open(STDERR, ">&OLDERR");
|
||||
close(OLDOUT);
|
||||
close(OLDERR);
|
||||
|
||||
if($test == -1) {
|
||||
print "No makepatch installed. Exiting\n";
|
||||
exit(10);
|
||||
}
|
||||
|
||||
|
||||
###########################################################
|
||||
# Now, check if anything specified on command line #
|
||||
###########################################################
|
||||
|
||||
my $result;
|
||||
my $help;
|
||||
my $zip = 1; # defaults to on
|
||||
my $diffname = undef;
|
||||
my $ignorename = undef;
|
||||
my @filename = ();
|
||||
my $manifest = undef;
|
||||
|
||||
$result = GetOptions("old=s" => \$old, "new=s" => \$new,
|
||||
"prefix=s" => \$gnc_home, "help" => \$help,
|
||||
"file=s" => \@filename, "ask!" => \$::ask_description,
|
||||
"diff=s" => \$diffname, "uuencode!" => \$::should_uuencode,
|
||||
"diffcmd!" => \$::diffcmd, "zip!" => \$zip,
|
||||
"ignore=s" => \$ignorename, "manifest=s" => \$manifest);
|
||||
|
||||
if ($help or $result == 0) {
|
||||
printf "Help information\n\n";
|
||||
printf "make-gnucash-patch accepts the following arguments:\n";
|
||||
printf "--old \"olddir\" Directory of \"pristine\" copy\n";
|
||||
printf "--new \"newdir\" Directory with modified copy\n";
|
||||
printf "--prefex \"homedir\" Full path of parent directory\n";
|
||||
printf "--diff \"diffname\" Output name for diff file\n";
|
||||
printf "--diffcmd \"cmd\" Command to compare two files\n";
|
||||
printf "--file \"filename\" Make patch for filename ONLY\n";
|
||||
printf "--manifest \"file\" Use file as a manifest file\n";
|
||||
printf "--ignore \"igname\" File containing file matches to ignore\n";
|
||||
printf "--(no)uuencode Enable or disable uuencoded output\n";
|
||||
printf " (Defaults to enabled)\n";
|
||||
printf "--(no)zip Enable or disable gzipped output\n";
|
||||
printf " (Defaults to enabled)\n";
|
||||
printf "--(no)ask Enable or disable prompting for description\n";
|
||||
printf " (Defaults to enabled)\n";
|
||||
printf "and of course:\n";
|
||||
printf "--help Displays this text\n";
|
||||
printf "\nAll options can be abbreviated to their shortest unique\n";
|
||||
printf " form: --o, --ne, --p, --d, --diffc, --f, --m, --i,\n";
|
||||
printf " --u/--nou, --z/--noz, --a/--noa, and --h\n";
|
||||
printf "\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# if explicit filename given, build required MANIFEST file
|
||||
|
||||
@filename = split(/,/,join(',',@filename));
|
||||
|
||||
if (@filename) {
|
||||
open (FN, ">$gnc_home/tmp.MANIFEST") or die "Couldn't create MANIFEST file";
|
||||
printf (FN "# Temporary manifest file for make-gnucash-patch -f option\n");
|
||||
printf (FN "\n");
|
||||
foreach my $part (@filename) {
|
||||
printf (FN "%s\n", $part);
|
||||
}
|
||||
close (FN);
|
||||
}
|
||||
|
||||
# Switch to the home directory
|
||||
print "Changing directory to $gnc_home\n";
|
||||
chdir $gnc_home or die "Can't cd!\n";
|
||||
|
||||
if (not defined($old)) {
|
||||
if (not -f "$new/CVS/Root") {
|
||||
print "Source not checked out of CVS and no \$old set. Quitting...\n";
|
||||
exit(1);
|
||||
}
|
||||
if (not -d "tmp") {
|
||||
mkdir "tmp", 0755;
|
||||
}
|
||||
chdir "tmp";
|
||||
system("cvs -d `cat ../$new/CVS/Root` co gnucash");
|
||||
chdir "..";
|
||||
$old = "tmp/gnucash";
|
||||
}
|
||||
|
||||
chdir $gnc_home . "/" . $new or die "Can't cd!\n";
|
||||
# Start out with our basic makepatch arguments
|
||||
my @args = ('-verbose', '-exclude-vc');
|
||||
|
||||
# Push the diff command value
|
||||
push(@args, '-diff', "$::diffcmd");
|
||||
|
||||
if (not $::ask_description) {
|
||||
push(@args, '-description', '');
|
||||
}
|
||||
|
||||
# If -f options given, use generated manifest file
|
||||
# otherwise, add exclusions and proceed as normal
|
||||
if (@filename) {
|
||||
push(@args, '-manifest', "$gnc_home/tmp.MANIFEST");
|
||||
}
|
||||
elsif (defined($manifest)) {
|
||||
if (not $manifest =~ m#/#) {
|
||||
$manifest = "$cwd/$manifest";
|
||||
}
|
||||
push(@args, '-manifest', "$manifest");
|
||||
}
|
||||
else {
|
||||
# Add in the exclude patterns from the __DATA__ section
|
||||
push_exclusions(\@args);
|
||||
}
|
||||
|
||||
sub push_exclusions {
|
||||
my $args = shift;
|
||||
foreach my $pat (<DATA>) {
|
||||
chomp($pat);
|
||||
push(@{$args}, '-exclude', $pat) if $pat;
|
||||
}
|
||||
if (defined ($ignorename)) {
|
||||
$ignorename = "../" . $ignorename;
|
||||
if (-e $ignorename) {
|
||||
open (IG, $ignorename) or die "Couldn't open $ignorename";
|
||||
foreach my $igf (<IG>) {
|
||||
chomp ($igf);
|
||||
push(@{$args}, '-exclude', $igf) if $igf;
|
||||
}
|
||||
close (IG);
|
||||
}
|
||||
}
|
||||
my @cvsignores = `find . -name '.cvsignore'`;
|
||||
foreach my $one_ignore (@cvsignores) {
|
||||
my ($name, $path) = fileparse($one_ignore);
|
||||
open (IG, $one_ignore);
|
||||
foreach my $fl (<IG>) {
|
||||
chomp $fl;
|
||||
$path =~ s/^\.\///;
|
||||
push(@{$args}, '-exclude', $path . $fl) if $fl;
|
||||
}
|
||||
close (IG);
|
||||
}
|
||||
}
|
||||
# Add the from and to directories for makepatch
|
||||
push(@args, $old, $new);
|
||||
print "Arguments are: " . join("; ", @args) . "\n";
|
||||
|
||||
chdir $gnc_home or die "Can't cd!\n";
|
||||
|
||||
# Erase the old files
|
||||
#unlink('gnc.diff', 'gnucash.diff.gz', 'gnucash.diff.gz.uue');
|
||||
|
||||
if (not -d "diffs") {
|
||||
mkdir "diffs", 0755;
|
||||
}
|
||||
|
||||
my $outfilename;
|
||||
|
||||
if (not defined($diffname)) {
|
||||
my $date = `date '+%Y%m%d-%H%M%S'`;
|
||||
chomp($date);
|
||||
my $who = `whoami`;
|
||||
chomp($who);
|
||||
|
||||
$outfilename = "gnucash-$date-$who.diff";
|
||||
}
|
||||
else {
|
||||
$outfilename = $diffname;
|
||||
}
|
||||
|
||||
# Invoke makepatch with standard out redirected to 'gnucash.diff'
|
||||
open(OLDOUT, ">&STDOUT");
|
||||
open(STDOUT, "> diffs/$outfilename") || die "Can't redirect stdout";
|
||||
system('makepatch', @args);
|
||||
close(STDOUT);
|
||||
open(STDOUT, ">&OLDOUT");
|
||||
close(OLDOUT);
|
||||
print "makepatch done\n";
|
||||
|
||||
# Compress the patch if required
|
||||
if ($zip) {
|
||||
if (-f "diffs/$outfilename") {
|
||||
system("gzip", "-9vf", "diffs/$outfilename");
|
||||
}
|
||||
}
|
||||
|
||||
# UU encode the patch if required
|
||||
|
||||
# if $zip is true, then
|
||||
# 'gnucash.diff.gz.uue' is the file you send.
|
||||
if ($zip and -f "diffs/$outfilename.gz" and $::should_uuencode) {
|
||||
system("uuencode diffs/$outfilename.gz $outfilename.gz > diffs/$outfilename.gz.uue");
|
||||
print "diffs/$outfilename.gz.uue\n";
|
||||
}
|
||||
else {
|
||||
if (not $zip and -f "diffs/$outfilename" and $::should_uuencode) {
|
||||
system("uuencode diffs/$outfilename $outfilename > diffs/$outfilename.uue");
|
||||
print "diffs/$outfilename.uue\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
exit(0);
|
||||
|
||||
__DATA__
|
||||
|
||||
#*#
|
||||
*.P
|
||||
*.pp
|
||||
*.a
|
||||
*.bak
|
||||
*.bin
|
||||
*.diff
|
||||
*.diffs
|
||||
*.gmo
|
||||
*.la
|
||||
*.lai
|
||||
*.lo
|
||||
*.loT
|
||||
*.log
|
||||
*.mo
|
||||
*.moc
|
||||
*.o
|
||||
*.orig
|
||||
*.ignmgp
|
||||
*.patch
|
||||
*.rej
|
||||
*.tar.gz
|
||||
*.wrap
|
||||
*.xac.*.xac
|
||||
*~
|
||||
.#*
|
||||
doc/gnc-prices.1
|
||||
doc/gnucash.1
|
@ -45,7 +45,7 @@ function prepare() {
|
||||
level1=$(basename ${_REPOS_UDIR})
|
||||
level2=$(basename $(dirname ${_REPOS_UDIR}))"/"$level1
|
||||
for mydir in $level0 $level1 $level2; do
|
||||
if [ -f $mydir/make-gnucash-patch.in ]; then
|
||||
if [ -f $mydir/make-gnucash-potfiles.in ]; then
|
||||
die "Do not save install.sh in the repository or one its parent directories"
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user