summaryrefslogtreecommitdiffstats
path: root/scripts/apatch.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/apatch.in')
-rwxr-xr-xscripts/apatch.in205
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