source: scripts/funcs/patching-funcs.sh @ 617118d

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since 617118d was 617118d, checked in by Jim Gifford <clfs@…>, 18 years ago

r561@server (orig r559): root | 2005-06-05 02:38:49 -0700
Fixed Directory Structure

  • Property mode set to 100755
File size: 1.6 KB
Line 
1#!/bin/bash
2#
3# Patching functions for cross-lfs
4# ---------------------------------
5# $LastChangedBy$
6# $LastChangedDate$
7# $LastChangedRevision$
8# $HeadURL$
9#
10
11# Check for stuff
12#----------------
13
14# Check for a grep which takes -E
15for dir in "" /bin/ /usr/bin/ /usr/xpg4/bin/ /usr/local/bin/ ; do
16   echo X | ${dir}grep -E X > /dev/null 2>&1 &&
17   {
18      export GREP="${path}grep"
19      break
20   }
21done
22
23if [ "${GREP}" = "" ]; then
24   echo "install a grep on the system that handles -E"
25   exit 1
26fi
27
28apply_patch () { # ${1}=<package-${PATCH_VER}> ${2}= patch flag (defaults to -Np1)
29   local patchname=${1}
30   local patchflags=${2}
31
32   local patch=`ls -t ${PATCHES}/${patchname}.* 2> /dev/null | \
33      ${GREP} -E ${patchname}.\(patch\|patch.gz\|patch.bz2\)$ | head -n 1`
34     
35
36   test -e ${PATCHES}/${patchname} || 
37   test -z ${patch} &&
38    {
39       echo "apply_patch: unable to locate patch '${patchname}' in ${PATCHES} ... exiting"
40       exit 1
41    }
42
43   test -z ${patchflags} && patchflags='-Np1'
44
45   case ${patch} in
46      *.patch.gz )   local CAT="gzip -dc" ;;
47      *.patch.bz2 )  local CAT="bzcat"    ;;
48      *.patch )      local CAT="cat"      ;;
49      * )   echo "apply_patch: unable to determine patch type... exiting"
50            exit 1 ;;
51   esac
52
53   echo "Applying ${patch}"
54   
55   ${CAT} ${patch} | patch ${patchflags} 2> /dev/null
56
57   # PIPESTATUS not available under bash 1.14.7 (RH 6.2)
58   #if [ "${PIPESTATUS[*]}" = "0 0" ]
59   if [ 0 = "${?}" ]; then
60      echo " o ${patch} applied successfully"
61   else
62      echo "apply_patch: unable to apply patch ${patch}... exiting"
63      exit 1
64   fi
65}
66
67# Export functions
68export -f apply_patch
69
Note: See TracBrowser for help on using the repository browser.