Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
diff bin/check-ports @ 34:36a10ff20355
Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Sat, 18 Nov 2017 13:18:10 +0100 |
| parents | 1537aff795c5 |
| children | ace5d471abbd |
line wrap: on
line diff
--- a/bin/check-ports Sat Nov 18 12:30:52 2017 +0100 +++ b/bin/check-ports Sat Nov 18 13:18:10 2017 +0100 @@ -116,9 +116,10 @@ alldata_flag="" alldata_LocalBSDPorts_flag="" alldata_LocalRepo_flag="" +short_flag="" verbose_flag="" -while getopts "Aav" _opt ; do +while getopts "Aasv" _opt ; do case ${_opt} in A) # print for every package the status of all repositories @@ -130,6 +131,11 @@ # print the data of all repos that have the package alldata_flag=1 ;; + s) + # "short" output: if installed from FreeBSD repo: don't + # report if only the index is newer + short_flag=1 + ;; v) # print all titles and repo of every installed always verbose_flag=1 @@ -144,6 +150,11 @@ esac done +if [ -n "${short_flag}" -a -n "${alldata_flag}" ]; then + echo "the -s option cannot be combined with -A or -a" >&2 + exit 2 +fi + installed_packages=$(pkg query '%n') installed_data="$(pkg query '%n %v %R' $installed_packages)" @@ -168,14 +179,28 @@ get_remote_repo_data ${LOCALBSDPORTS_REPO} ${_installed_name} get_remote_repo_data ${FREEBSD_REPO} ${_installed_name} if [ \( -n "${alldata_flag}" \) -o \( "${llabel}" != '?' -a "${llabel}" != '=' \) -o \( "${remote_FreeBSD_label}" != '?' -a "${remote_FreeBSD_label}" != '=' \) -o \( "${remote_LocalBSDPorts_label}" != '?' -a "${remote_LocalBSDPorts_label}" != '=' \) -o \( "${remote_LocalRepo_label}" != '?' -a "${remote_LocalRepo_label}" != '=' \) ] ; then - print_title "${lfqp}" "${repository}" - echo " INDEX: ${llabel} ${ldescr}" - echo " FreeBSD: ${remote_FreeBSD_label} ${remote_FreeBSD_descr}" - if [ \( -n "${alldata_LocalBSDPorts_flag}" \) -o \( "${remote_LocalBSDPorts_label}" != '?' \) ] ; then - echo " LocalBSDPorts: ${remote_LocalBSDPorts_label} ${remote_LocalBSDPorts_descr}" + _print_detail="" + if [ -n "${short_flag}" ]; then + # + # NOTE: -s and -A/-a are incompatible: so "alldata_XXX" needs not + # to be checked! + # + if [ "${repository}" != "${FREEBSD_REPO}" -o "${llabel}" != '<' -o "${remote_FreeBSD_label}" != '=' -o "${remote_LocalRepo_label}" != '?' -o "${remote_LocalBSDPorts_label}" != '?' ]; then + _print_detail=1 + fi + else + _print_detail=1 fi - if [ \( -n "${alldata_LocalRepo_flag}" \) -o \( "${remote_LocalRepo_label}" != '?' \) ] ; then - echo " LocalRepo: ${remote_LocalRepo_label} ${remote_LocalRepo_descr}" + if [ -n "${_print_detail}" ]; then + print_title "${lfqp}" "${repository}" + echo " INDEX: ${llabel} ${ldescr}" + echo " FreeBSD: ${remote_FreeBSD_label} ${remote_FreeBSD_descr}" + if [ \( -n "${alldata_LocalBSDPorts_flag}" \) -o \( "${remote_LocalBSDPorts_label}" != '?' \) ] ; then + echo " LocalBSDPorts: ${remote_LocalBSDPorts_label} ${remote_LocalBSDPorts_descr}" + fi + if [ \( -n "${alldata_LocalRepo_flag}" \) -o \( "${remote_LocalRepo_label}" != '?' \) ] ; then + echo " LocalRepo: ${remote_LocalRepo_label} ${remote_LocalRepo_descr}" + fi fi fi done <<EOF856661111299999
