Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
comparison bin/check-ports @ 5:53c3500894d2
Begin a new implementation algorithm
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Mon, 16 Oct 2017 09:50:55 +0200 |
| parents | ba95569a12b1 |
| children | 0d9a499e89e9 |
comparison
equal
deleted
inserted
replaced
| 4:ba95569a12b1 | 5:53c3500894d2 |
|---|---|
| 4 : ${FREEBSD_REPO:=FreeBSD} | 4 : ${FREEBSD_REPO:=FreeBSD} |
| 5 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} | 5 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} |
| 6 | 6 |
| 7 installed_packages=$(pkg query '%n') | 7 installed_packages=$(pkg query '%n') |
| 8 | 8 |
| 9 #for p in ${installed_packages} ; do | 9 get_remote_repo_versions() { |
| 10 # echo -n $p" " | 10 _repo="$1" |
| 11 # pkg query '%v' $p | |
| 12 # pkg rquery '%v' $p | |
| 13 #done | |
| 14 | 11 |
| 15 #pkg query '%n %v %R' $installed_packages | | 12 _data=$(pkg version -U -R -r ${_repo} -v) |
| 16 # while read vn vv vR ; do# | |
| 17 # remote_ver=$(pkg rquery -r FreeBSD '%v' $vn) | |
| 18 # version_compare=$(pkg version --test-version ${vv} ${remote_ver}) | |
| 19 # echo $vn $vv ${remote_ver} ${version_compare} $vR | |
| 20 # done | |
| 21 | |
| 22 do_rquery() { | |
| 23 _repo="$1" | |
| 24 _packagage_name="$2" | |
| 25 | |
| 26 remote_ver=$(pkg rquery -U -r ${_repo} '%v' ${_package_name}) | |
| 27 } | |
| 28 | |
| 29 remote_data() { | |
| 30 _repo="$1" | |
| 31 shift | |
| 32 | |
| 33 _temp=$(pkg rquery -U -r "${_repo}" '%n %v' "$@") | |
| 34 _rv=$? | 13 _rv=$? |
| 35 eval remote_${_repo}_data="\"\${_temp}\"" | 14 eval remote_${_repo}_versions=\"\${_data}\" |
| 36 return ${_rv} | 15 return ${_rv} |
| 37 } | 16 } |
| 38 | 17 |
| 39 all_remote_data() { | 18 get_local_index_versions() { |
| 40 _repo="$1" | 19 local_index_versions="$(pkg version -I -v)" |
| 41 _temp=$(pkg rquery -U -r "${_repo}" --all '%n %v') | |
| 42 _rv=$? | |
| 43 eval remote_${_repo}_data="\"\${_temp}\"" | |
| 44 return ${_rv} | |
| 45 } | |
| 46 | |
| 47 query_repo() { | |
| 48 _repo="$1" | |
| 49 _package_name="$2" | |
| 50 | |
| 51 eval _repo_packages="\${remote_${_repo}_data}" | |
| 52 while read _p _v ; do | |
| 53 if [ "$_p" = "${_package_name}" ] ; then | |
| 54 repo_version="${_v}" | |
| 55 return 0 | |
| 56 fi | |
| 57 done <<EOFABCDEFG43 | |
| 58 ${_repo_packages} | |
| 59 EOFABCDEFG43 | |
| 60 repo_version="" | |
| 61 return 1 | |
| 62 } | 20 } |
| 63 | 21 |
| 64 installed_data="$(pkg query '%n %v %R' $installed_packages)" | 22 installed_data="$(pkg query '%n %v %R' $installed_packages)" |
| 65 | 23 |
| 66 remote_data FreeBSD ${installed_packages} | 24 get_remote_repo_versions ${LOCAL_REPO} |
| 67 remote_data LocalRepo ${installed_packages} | 25 get_remote_repo_versions ${FREEBSD_REPO} |
| 68 | 26 get_local_index_versions |
| 69 while read vn vv vR ; do | |
| 70 if [ "${vR}" = "${PORTS_DIRECT_INSTALLED_REPO}" ] ; then | |
| 71 _local_ver_label="$(pkg version -U -I -n ${vn} | sed -E -e 's/.+[[:space:]]+//')" | |
| 72 echo ${_local_ver_label} | |
| 73 elif [ "${vR}" = "${LOCAL_REPO}" ] ; then | |
| 74 if ! query_repo "${vR}" "${vn}" ; then | |
| 75 echo "ERROR: ${vn} ${vR}" | |
| 76 else | |
| 77 echo "REPO: ${repo_version} vs. installed version ${vv}" | |
| 78 fi | |
| 79 elif [ "${vR}" = "${FREEBSD_REPO}" ] ; then | |
| 80 if ! query_repo "${vR}" "${vn}" ; then | |
| 81 echo "ERROR 2: ${vn} ${vR}" | |
| 82 fi | |
| 83 else | |
| 84 echo "UNKNOWN REPOSITORY \`${vR}' for packet \`${vn}'" >&2 | |
| 85 fi | |
| 86 done <<EOFEOFEOF687 | |
| 87 ${installed_data} | |
| 88 EOFEOFEOF687 |
