Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 8:208545b92d43
First working version: real useful output of packages differing from any repo
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Sun, 22 Oct 2017 18:06:32 +0200 |
| parents | 2712d249c371 |
| children | 6b77068e7ec8 |
| files | bin/check-ports |
| diffstat | 1 files changed, 56 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/check-ports Sun Oct 22 14:36:16 2017 +0200 +++ b/bin/check-ports Sun Oct 22 18:06:32 2017 +0200 @@ -5,7 +5,9 @@ : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} get_remote_repo_versions() { - _repo="$1" + local _repo _data _rv + + _repo=$1 _data=$(pkg version -U -R -r ${_repo} -v) _rv=$? @@ -13,13 +15,53 @@ return ${_rv} } +get_remote_repo_data() { + local _repo _name _rversions _rfqp _rl _rdescr + + _repo=$1 + _name=$2 + + eval _rversions=\"\${remote_${_repo}_versions}\" + while read _rfqp _rl _rdescr ; do + if [ ${_rfqp%-*} = ${_name} ] ; then + eval remote_${_repo}_label=\${_rl} + eval remote_${_repo}_descr=\"\${_rdescr}\" + return 0 + fi + done <<EOF884657 +${_rversions} +EOF884657 + eval remote_${_repo}_label="" + eval remote_${_repo}_descr="" + return 1 +} + get_local_index_versions() { local_index_versions=$(pkg version -I -v) } +get_repo_for_package() { + local _name _n _v _r + + _name=$1 + + while read _n _v _r ; do + if [ ${_name} = ${_n} ] ; then + repository=${_r} + return 0 + fi + done<<EOF223777 +${installed_data} +EOF223777 + return 1 +} + assert_local_version() { + local _name _version _n _v _r + _name=$1 _version=$2 + while read _n _v _r ; do if [ ${_name} = ${_n} ] ; then if [ ${_version} != ${_v} ] ; then @@ -44,11 +86,22 @@ while read lfqp llabel ldescr ; do _installed_name=${lfqp%-*} _installed_version=${lfqp##*-} - echo $lfqp ${_installed_name} ${_installed_version} ${llabel} + #echo $lfqp ${_installed_name} ${_installed_version} ${llabel} if ! assert_local_version ${_installed_name} ${_installed_version} ; then - echo "Assertion failed" >&2 + echo "Assertion failed: $lfqp ${_installed_name} ${_installed_version} ${llabel}" >&2 exit 1 fi + get_remote_repo_data ${LOCAL_REPO} ${_installed_name} + get_remote_repo_data ${FREEBSD_REPO} ${_installed_name} + get_repo_for_package ${_installed_name} + if [ \( ${llabel} != '?' -a ${llabel} != '=' \) -o \( ${remote_FreeBSD_label} != '?' -a ${remote_FreeBSD_label} != '=' \) -o \( ${remote_LocalRepo_label} != '?' -a ${remote_LocalRepo_label} != '=' \) ] ; then + echo "${lfqp} (${repository})" + echo " ${ldescr}" + echo " FreeBSD: ${remote_FreeBSD_descr}" + if [ ${remote_LocalRepo_label} != '?' ] ; then + echo " LocalRepo: ${remote_LocalRepo_descr}" + fi + fi done <<EOF856661111299999 ${local_index_versions} EOF856661111299999
