| |
| |
| |
| |
| rtl_state_clear() { |
| local _workdir="${1}" _pkg_name="${2}" _pkg_fname=""; |
| for _pkg_fname in $(find "${_workdir}" \ |
| -maxdepth 1 -mindepth 1 -name .${_pkg_name}.\* -type f); do |
| rtl_fileop rm "${_pkg_fname}"; |
| done; |
| }; |
| |
| rtl_state_set() { |
| local _workdir="${1}" _pkg_fname="${2}" _build_step="${3}" \ |
| _done_fname_pfx="${1}/.${2}"; shift 3; |
| |
| rtl_fileop touch "${_done_fname_pfx}.${_build_step}"; |
| while [ ${#} -ge 1 ]; do |
| if [ "${#1}" -gt 0 ]; then |
| rtl_fileop rm "${_done_fname_pfx}.${1}"; |
| fi; shift; |
| done; |
| }; |
| |
| rtl_state_test() { |
| local _workdir="${1}" _pkg_name="${2}" _build_steps="${3}" \ |
| _restart_at="${4:-}" _build_step="" _done_fname="" \ |
| IFS="," _rc=0; |
| |
| for _build_step in ${_build_steps}; do |
| _done_fname="${_workdir}/.${_pkg_name}.${_build_step}"; |
| if [ "${_restart_at:+1}" != 1 ]\ |
| || [ "${_restart_at}" = "LAST" ]; then |
| rtl_fileop test "${_done_fname}"; _rc="${?}"; |
| elif [ "${_restart_at}" = "ALL" ]; then |
| _rc=1; |
| else |
| rtl_lmatch "${_restart_at}" "${_build_step}" ","; |
| _rc=$((${?} ? 0 : 1)); |
| fi; [ "${_rc}" -eq 0 ] && break; |
| done; return "${_rc}"; |
| }; |
| |
| |