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
|
#!/bin/bash
# PDFedit - free program for PDF document manipulation.
# Copyright (C) 2006-2009 PDFedit team: Michal Hocko,
# Jozef Misutka,
# Martin Petricek
# Former team members: Miroslav Jahoda
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program (in doc/LICENSE.GPL); if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
# Project is hosted on http://sourceforge.net/projects/pdfedit
PROG_NAME=`basename $0`
usage()
{
echo "$PROG_NAME usage:"
echo -e "\t$PROG_NAME patch_file [-dry] [-revert] files*"
echo -e "\n\tpatch_file\tpatch to apply."
echo -e "\tfiles\tfiles to be used"
echo -e "\t-dry\tdry run - don't do any changes just try what would be done."
echo -e "\t-revert\trevers given patch"
exit 1
}
if [ $# -lt 1 ]
then
usage
fi
PATCH_FILE=$1
FILES=
DRY=
REVERT=
shift
for param in $*
do
if [ "i$1" = "i-dry" ]
then
DRY=--dry-run
shift
continue
fi
if [ "i$1" = "i-revert" ]
then
REVERT=-R
shift
continue
fi
if [ -f $1 ]
then
FILES="$FILES $1"
shift
continue
fi
echo "Unrecognized parameter $1 (skipping)"
shift
done
echo patch to be used: $PATCH_FILE
echo files to be patched: $FILES
[ -n "$DRY" ] && echo dry-run
[ -n "$REVERT" ] && echo reverting
for FILE in $FILES
do
echo -n "Patching $FILE "
# cat $PATCH_FILE | sed -e "s/\(^---\)\s\(.*\)\s.*/\1 ${FILE}/" -e "s/\(^+++\)\s\(.*\)\s.*/\1 ${FILE}/" | patch -p0 --dry-run && echo ok || echo failed
patch <$PATCH_FILE -p0 $DRY $REVERT $FILE >& /dev/null && echo -e "\tok" || echo -e "\tfailed"
done
|