diff options
Diffstat (limited to 'scripts/apatch.in')
-rwxr-xr-x | scripts/apatch.in | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/scripts/apatch.in b/scripts/apatch.in deleted file mode 100755 index 7e58c50..0000000 --- a/scripts/apatch.in +++ /dev/null @@ -1,205 +0,0 @@ -#! @BASH@ - -# This script is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# See the COPYING and AUTHORS files for more details. - -# Read in library functions -if [ "$(type -t patch_file_name)" != function ] -then - if ! [ -r @SCRIPTS@/patchfns ] - then - echo "Cannot read library @SCRIPTS@/patchfns" >&2 - exit 1 - fi - . @SCRIPTS@/patchfns -fi - -usage() -{ - printf $"Usage: $0 [-fqv] patchname\n" - exit 1 -} - -interrupt() -{ - rollback_patch $1 - printf $"Interrupted by user; patch %s was not applied.\n" \ - "$(print_patch $patch)" >&2 - exit 1 -} - -apply_patch() -{ - local patch=$1 - local patch_file=$(patch_file_name $patch) output - - if ! [ -s $patch_file ] - then - printf $"Patch %s appears to be empty\n" "$patch_file" - return 0 - fi - - if [ "x${patch_file:(-3)}" = "x.gz" ] - then - gzip -cd $patch_file \ - | @PATCH@ $QUILT_PATCH_OPTS $(patch_args $patch) \ - --backup --prefix="$QUILT_PC/$patch/" \ - $no_reject_files \ - -E $silent $force_apply 2>&1 - elif [ "x${patch_file:(-4)}" = "x.bz2" ] - then - bzip2 -cd $patch_file \ - | @PATCH@ $QUILT_PATCH_OPTS $(patch_args $patch) \ - --backup --prefix="$QUILT_PC/$patch/" \ - $no_reject_files \ - -E $silent $force_apply 2>&1 - else - @PATCH@ $QUILT_PATCH_OPTS $(patch_args $patch) \ - --backup --prefix="$QUILT_PC/$patch/" \ - $no_reject_files \ - -E $silent $force_apply -i $patch_file 2>&1 - fi -} - -rollback_patch() -{ - local patch=$1 - - @LIB@/backup-files $silent_unless_verbose -r -B $QUILT_PC/$patch/ - -} - -apatch() -{ - local patch=$1 - local file status - - printf $"Applying patch %s\n" "$(print_patch $patch)" - trap "interrupt $patch" SIGINT - - no_reject_files= - if [ -z "$opt_leave_rejects" ]; then - local tmp="$(gen_tempfile)" - trap "rm -f $tmp" EXIT - no_reject_files="-r $tmp" - fi - - output="$(apply_patch $patch)" - status=${PIPESTATUS[0]} - - trap "" SIGINT - - if [ $status -ne 0 -a -z "$opt_leave_rejects" ] - then - # The reject files are removed in rollback_patch. - echo "$output" \ - | @AWK@ ' - /^patching file / { filename = substr($0, 15) } - { if ('${#silent}' != 0) - gsub(/ -- saving rejects to file .*/, "") - else - gsub(/ -- saving rejects to file .*/, " -- rejects in file " filename) - } - { print } - ' - elif [ -n "$output" ] - then - echo "$output" - fi - - if [ $status -eq 0 -o -n "$opt_force" ] - then - add_to_db $patch - if [ $status -eq 0 ] - then - rm -f $QUILT_PC/$patch~refresh - else - touch $QUILT_PC/$patch~refresh - fi - - if [ -e "$QUILT_PC/$patch" ] - then - touch $QUILT_PC/$patch/.timestamp - fi - - if [ "$(shopt -s nullglob ; echo $QUILT_PC/$patch/*)" = "" ] - then - printf $"Patch %s appears to be empty, applied\n" \ - "$(print_patch $patch)" - elif [ $status -ne 0 ] - then - printf $"Applied patch %s (forced; needs refresh)\n" \ - "$(print_patch $patch)" - fi - else - rollback_patch $patch - printf $"Patch %s does not apply (enforce with -f)\n" \ - "$(print_patch $patch)" - status=1 - fi - trap - SIGINT - return $status -} - -options=`getopt -o fqvh --long leave-rejects,interactive -- "$@"` - -if [ $? -ne 0 ] -then - usage -fi - -eval set -- "$options" - -while true -do - case "$1" in - -f) - opt_force=1 - shift ;; - -q) - opt_quiet=1 - shift ;; - -v) - opt_verbose=1 - shift ;; - --leave-rejects) - opt_leave_rejects=1 - shift ;; - --interactive) - opt_interactive=1 - shift ;; - -h) - usage -h ;; - --) - shift - break ;; - esac -done - -if [ $# -ne 1 ] -then - usage -fi - -[ -n "$opt_quiet" ] && silent=-s -[ -z "$opt_verbose" ] && silent_unless_verbose=-s -[ -z "$opt_interactive" ] && force_apply=-f -[ -n "$opt_force" ] && opt_leave_rejects=1 - -patch=$1 - -top=$(top_patch) -if [ -n "$top" -a -e $QUILT_PC/$top~refresh ] -then - printf $"The topmost patch %s needs to be refreshed first.\n" \ - "$(print_patch $top)" - exit 1 -fi - -apatch $patch -### Local Variables: -### mode: shell-script -### End: -# vim:filetype=sh |