1.1 --- a/scripts/functions Sun Mar 15 20:06:40 2009 +0000
1.2 +++ b/scripts/functions Sun Apr 19 16:17:11 2009 +0000
1.3 @@ -317,7 +317,7 @@
1.4 # Find all interfaces and build locally accessible networks
1.5 server_ip=$(ping -c 1 -W 2 "${CT_PROXY_HOST}" |head -n 1 |sed -r -e 's/^[^\(]+\(([^\)]+)\).*$/\1/;' || true)
1.6 CT_TestOrAbort "SOCKS proxy '${CT_PROXY_HOST}' has no IP." -n "${server_ip}"
1.7 - /sbin/ifconfig |gawk -v server_ip="${server_ip}" '
1.8 + /sbin/ifconfig |"${awk}" -v server_ip="${server_ip}" '
1.9 BEGIN {
1.10 split( server_ip, tmp, "\\." );
1.11 server_ip_num = tmp[1] * 2^24 + tmp[2] * 2^16 + tmp[3] * 2^8 + tmp[4] * 2^0;
1.12 @@ -642,9 +642,9 @@
1.13 # Some tarballs have read-only files... :-(
1.14 # Because of nochdir, we don't know where we are, so chmod all
1.15 # the src tree
1.16 - chmod -R u+w "${CT_SRC_DIR}"
1.17 + CT_DoExecLog DEBUG chmod -R u+w "${CT_SRC_DIR}"
1.18
1.19 - touch "${CT_SRC_DIR}/.${basename}.extracted"
1.20 + CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.${basename}.extracted"
1.21
1.22 [ "${nochdir}" = "nochdir" ] || CT_Popd
1.23 }
1.24 @@ -665,6 +665,17 @@
1.25 return 0
1.26 fi
1.27
1.28 + # Check if already partially patched
1.29 + if [ -e "${CT_SRC_DIR}/.${basename}.patching" ]; then
1.30 + CT_DoLog ERROR "The '${basename}' sources were partially patched."
1.31 + CT_DoLog ERROR "Please remove first:"
1.32 + CT_DoLog ERROR " - the source dir for '${basename}', in '${CT_SRC_DIR}'"
1.33 + CT_DoLog ERROR " - the file '${CT_SRC_DIR}/.${basename}.extracted'"
1.34 + CT_DoLog ERROR " - the file '${CT_SRC_DIR}/.${basename}.patching'"
1.35 + CT_Abort "I'll stop now to avoid any carnage..."
1.36 + fi
1.37 + touch "${CT_SRC_DIR}/.${basename}.patching"
1.38 +
1.39 [ "${nochdir}" = "nochdir" ] || CT_Pushd "${CT_SRC_DIR}/${basename}"
1.40
1.41 CT_DoLog EXTRA "Patching '${basename}'"
1.42 @@ -695,7 +706,8 @@
1.43 done
1.44 fi
1.45
1.46 - touch "${CT_SRC_DIR}/.${basename}.patched"
1.47 + CT_DoExecLog DEBUG rm -f "${CT_SRC_DIR}/.${basename}.patching"
1.48 + CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.${basename}.patched"
1.49
1.50 [ "${nochdir}" = "nochdir" ] || CT_Popd
1.51 }
1.52 @@ -818,7 +830,8 @@
1.53 local state_name="$1"
1.54 local state_dir="${CT_STATE_DIR}/${state_name}"
1.55
1.56 - CT_DoLog DEBUG "Saving state to restart at step '${state_name}'..."
1.57 + # Log this to the log level required by the user
1.58 + CT_DoLog ${CT_LOG_LEVEL_MAX} "Saving state to restart at step '${state_name}'..."
1.59
1.60 rm -rf "${state_dir}"
1.61 mkdir -p "${state_dir}"
1.62 @@ -832,7 +845,7 @@
1.63 # We must omit shell functions, and some specific bash variables
1.64 # that break when restoring the environment, later. We could do
1.65 # all the processing in the gawk script, but a sed is easier...
1.66 - set |gawk '
1.67 + set |"${awk}" '
1.68 BEGIN { _p = 1; }
1.69 $0~/^[^ ]+ \(\)/ { _p = 0; }
1.70 _p == 1
1.71 @@ -841,6 +854,11 @@
1.72 /^(UID|EUID)=/d;
1.73 /^(FUNCNAME|GROUPS|PPID|SHELLOPTS)=/d;' >"${state_dir}/env.sh"
1.74
1.75 + CT_DoLog DEBUG " Saving CT_CONFIG_DIR='${CT_CONFIG_DIR}'"
1.76 + CT_Pushd "${CT_CONFIG_DIR}"
1.77 + CT_DoExecLog DEBUG tar cv${tar_opt}f "${state_dir}/config_dir.tar${tar_ext}" .
1.78 + CT_Popd
1.79 +
1.80 CT_DoLog DEBUG " Saving CT_CC_CORE_STATIC_PREFIX_DIR='${CT_CC_CORE_STATIC_PREFIX_DIR}'"
1.81 CT_Pushd "${CT_CC_CORE_STATIC_PREFIX_DIR}"
1.82 CT_DoExecLog DEBUG tar cv${tar_opt}f "${state_dir}/cc_core_static_prefix_dir.tar${tar_ext}" .
1.83 @@ -881,7 +899,9 @@
1.84 if [ "${CT_LOG_TO_FILE}" = "y" ]; then
1.85 exec >"${state_dir}/tail.log"
1.86 fi
1.87 - CT_DoLog INFO "Restoring state at step '${state_name}', as requested."
1.88 +
1.89 + # Log this to the log level required by the user
1.90 + CT_DoLog ${CT_LOG_LEVEL_MAX} "Restoring state at step '${state_name}', as requested."
1.91
1.92 case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in
1.93 y) tar_opt=z; tar_ext=.gz;;
1.94 @@ -889,9 +909,8 @@
1.95 esac
1.96
1.97 CT_DoLog DEBUG " Removing previous build directories"
1.98 - chmod -R u+rwX "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
1.99 - rm -rf "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
1.100 - mkdir -p "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
1.101 + CT_DoForceRmdir "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}" "${CT_CONFIG_DIR}"
1.102 + CT_DoExecLog DEBUG mkdir -p "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}" "${CT_CONFIG_DIR}"
1.103
1.104 CT_DoLog DEBUG " Restoring CT_PREFIX_DIR='${CT_PREFIX_DIR}'"
1.105 CT_Pushd "${CT_PREFIX_DIR}"
1.106 @@ -908,6 +927,11 @@
1.107 CT_DoExecLog DEBUG tar xv${tar_opt}f "${state_dir}/cc_core_static_prefix_dir.tar${tar_ext}"
1.108 CT_Popd
1.109
1.110 + CT_DoLog DEBUG " Restoring CT_CONFIG_DIR='${CT_CONFIG_DIR}'"
1.111 + CT_Pushd "${CT_CONFIG_DIR}"
1.112 + CT_DoExecLog DEBUG tar xv${tar_opt}f "${state_dir}/config_dir.tar${tar_ext}"
1.113 + CT_Popd
1.114 +
1.115 # Restore the environment, discarding any error message
1.116 # (for example, read-only bash internals)
1.117 CT_DoLog DEBUG " Restoring environment"