Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
view bin/check-ports @ 12:fd56d1b7d822
Use extra flag for controlling the printing of the package title
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Wed, 25 Oct 2017 09:22:56 +0200 |
| parents | 5bf2bf962bf0 |
| children | c0e2eb5613fe |
line wrap: on
line source
#!/bin/sh : ${LOCAL_REPO:=LocalRepo} : ${FREEBSD_REPO:=FreeBSD} : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} get_remote_repo_versions() { local _repo _data _rv _repo=$1 _data=$(pkg version -U -R -r ${_repo} -v) _rv=$? eval remote_${_repo}_versions=\"\${_data}\" 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 return 1 else return 0 fi fi done <<EOF223 ${installed_data} EOF223 return 2 } alldata_flag="" alldata_LocalRepo_flag="" verbose_flag="" while getopts "Aav" _opt ; do case ${_opt} in A) alldata_flag=1 alldata_LocalRepo_flag=1 ;; a) alldata_flag=1 ;; v) verbose_flag=1 ;; \?) exit 2 ;; *) echo "option handling failed" >&2 exit 2 ;; esac done 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##*-} _title_printed="" if [ -n "${verbose_flag}" ] ; then echo "${lfqp} (${repository})" _title_printed=yes fi if ! assert_local_version ${_installed_name} ${_installed_version} ; then 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 [ \( -n "${alldata_flag}" \) -o \( ${llabel} != '?' -a ${llabel} != '=' \) -o \( ${remote_FreeBSD_label} != '?' -a ${remote_FreeBSD_label} != '=' \) -o \( ${remote_LocalRepo_label} != '?' -a ${remote_LocalRepo_label} != '=' \) ] ; then if [ -z "${_title_printed}" ] ; then echo "${lfqp} (${repository})" fi echo " INDEX: ${llabel} ${ldescr}" echo " FreeBSD: ${remote_FreeBSD_label} ${remote_FreeBSD_descr}" if [ \( -n "${alldata_LocalRepo_flag}" \) -o \( ${remote_LocalRepo_label} != '?' \) ] ; then echo " LocalRepo: ${remote_LocalRepo_label} ${remote_LocalRepo_descr}" fi fi done <<EOF856661111299999 ${local_index_versions} EOF856661111299999
