scripts/functions
changeset 1507 ec5314609c00
parent 1506 d33da84b1317
child 1508 7eeeaf4bc78a
     1.1 --- a/scripts/functions	Mon Aug 31 11:57:13 2009 +0200
     1.2 +++ b/scripts/functions	Mon Aug 31 12:05:52 2009 +0200
     1.3 @@ -585,8 +585,10 @@
     1.4      local nochdir="$2"
     1.5      local base_file="${basename%%-*}"
     1.6      local ver_file="${basename#*-}"
     1.7 -    local official_patch_dir
     1.8 -    local custom_patch_dir
     1.9 +    local d
    1.10 +    local -a patch_dirs
    1.11 +    local bundled_patch_dir
    1.12 +    local local_patch_dir
    1.13  
    1.14      # Check if already patched
    1.15      if [ -e "${CT_SRC_DIR}/.${basename}.patched" ]; then
    1.16 @@ -609,13 +611,19 @@
    1.17  
    1.18      CT_DoLog EXTRA "Patching '${basename}'"
    1.19  
    1.20 -    official_patch_dir=
    1.21 -    custom_patch_dir=
    1.22 -    [ "${CT_CUSTOM_PATCH_ONLY}" = "y" ] || official_patch_dir="${CT_LIB_DIR}/patches/${base_file}/${ver_file}"
    1.23 -    [ "${CT_CUSTOM_PATCH}" = "y" ] && custom_patch_dir="${CT_CUSTOM_PATCH_DIR}/${base_file}/${ver_file}"
    1.24 -    for patch_dir in "${official_patch_dir}" "${custom_patch_dir}"; do
    1.25 -        if [ -n "${patch_dir}" -a -d "${patch_dir}" ]; then
    1.26 -            for p in "${patch_dir}"/*.patch; do
    1.27 +    bundled_patch_dir="${CT_LIB_DIR}/patches/${base_file}/${ver_file}"
    1.28 +    local_patch_dir="${CT_CUSTOM_PATCH_DIR}/${base_file}/${ver_file}"
    1.29 +
    1.30 +    case "${CT_PATCH_ORDER}" in
    1.31 +        bundled)        patch_dirs=("${bundled_patch_dir}");;
    1.32 +        local)          patch_dirs=("${local_patch_dir}");;
    1.33 +        bundled,local)  patch_dirs=("${bundled_patch_dir}" "${local_patch_dir}");;
    1.34 +    esac
    1.35 +
    1.36 +    for d in "${patch_dirs[@]}"; do
    1.37 +        CT_DoLog DEBUG "Looking for patches in '${d}'..."
    1.38 +        if [ -n "${d}" -a -d "${d}" ]; then
    1.39 +            for p in "${d}"/*.patch; do
    1.40                  if [ -f "${p}" ]; then
    1.41                      CT_DoLog DEBUG "Applying patch '${p}'"
    1.42                      CT_DoExecLog ALL patch -g0 -F1 -p1 -f <"${p}"