Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
view bin/check-ports @ 7:2712d249c371
Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Sun, 22 Oct 2017 14:36:16 +0200 |
| parents | 0d9a499e89e9 |
| children | 208545b92d43 |
line wrap: on
line source
#!/bin/sh : ${LOCAL_REPO:=LocalRepo} : ${FREEBSD_REPO:=FreeBSD} : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} get_remote_repo_versions() { _repo="$1" _data=$(pkg version -U -R -r ${_repo} -v) _rv=$? eval remote_${_repo}_versions=\"\${_data}\" return ${_rv} } get_local_index_versions() { local_index_versions=$(pkg version -I -v) } assert_local_version() { _name=$1 _version=$2 while read _n _v _r ; do if [ ${_name} = ${_n} ] ; then if [ ${_version} != ${_v} ] ; then return 1 else return 0 fi fi done <<EOF223 ${installed_data} EOF223 return 2 } installed_packages=$(pkg query '%n') installed_data="$(pkg query '%n %v %R' $installed_packages)" get_remote_repo_versions ${LOCAL_REPO} get_remote_repo_versions ${FREEBSD_REPO} get_local_index_versions while read lfqp llabel ldescr ; do _installed_name=${lfqp%-*} _installed_version=${lfqp##*-} echo $lfqp ${_installed_name} ${_installed_version} ${llabel} if ! assert_local_version ${_installed_name} ${_installed_version} ; then echo "Assertion failed" >&2 exit 1 fi done <<EOF856661111299999 ${local_index_versions} EOF856661111299999
