diff options
Diffstat (limited to 'script/update/project')
-rwxr-xr-x | script/update/project/trees | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/script/update/project/trees b/script/update/project/trees index 093d5086..b61aab22 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -18,10 +18,9 @@ main() printf "Downloading %s and applying patches\n" ${project} [ -z "${1}" ] && err "project name not specified" - project="${1}" + project="${1}" && shift 1 cfgsdir="config/${project}" [ -d "${cfgsdir}" ] || err "unsupported project name" - shift 1 targets=$(listitems "${cfgsdir}") [ $# -gt 0 ] && targets=$@ @@ -39,21 +38,16 @@ download_for_target() tree="undefined" rev="undefined" - fetch_config "${_target}" + fetch_config + [ -d "${project}/${tree}" ] && printf "download/%s %s (%s): exists\n" \ + "${project}" "${tree}" "${_target}" 1>&2 && return 0 - if [ -d "${project}/${tree}" ]; then - printf "REMARK: download/%s %s (%s): exists. Skipping.\n" \ - "${project}" "${tree}" "${_target}" 1>&2 - else - fetch_from_upstream - prepare_new_tree - fi + fetch_from_upstream + prepare_new_tree } fetch_config() { - _target=${1} - while true; do eval "$(setvars "" rev tree)" _xm="fetch_config ${project}/${_target}" @@ -64,10 +58,7 @@ fetch_config() . "${cfgsdir}/${_target}/target.cfg" || \ err "fetch_config: no \"${cfgsdir}/${_target}/target.cfg\"" - if [ "${_target}" != "${tree}" ]; then - _target="${tree}" - continue - fi + [ "${_target}" != "${tree}" ] && _target="${tree}" && continue [ -z ${tree} ] && err "${_xm}: tree undefined" [ -z ${rev} ] && err "${_xm}: revision undefined" break @@ -78,7 +69,6 @@ check_config_for_target() { [ -f "${cfgsdir}/${1}/target.cfg" ] || \ err "${_xm} check: target.cfg does not exist" - [ -f "${cfgsdir}/${1}/seen" ] && \ err "${_xm} check: infinite loop in tree definitions" |