comparison 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
comparison
equal deleted inserted replaced
33:1537aff795c5 34:36a10ff20355
114 114
115 115
116 alldata_flag="" 116 alldata_flag=""
117 alldata_LocalBSDPorts_flag="" 117 alldata_LocalBSDPorts_flag=""
118 alldata_LocalRepo_flag="" 118 alldata_LocalRepo_flag=""
119 short_flag=""
119 verbose_flag="" 120 verbose_flag=""
120 121
121 while getopts "Aav" _opt ; do 122 while getopts "Aasv" _opt ; do
122 case ${_opt} in 123 case ${_opt} in
123 A) 124 A)
124 # print for every package the status of all repositories 125 # print for every package the status of all repositories
125 alldata_flag=1 126 alldata_flag=1
126 alldata_LocalBSDPorts_flag=1 127 alldata_LocalBSDPorts_flag=1
128 ;; 129 ;;
129 a) 130 a)
130 # print the data of all repos that have the package 131 # print the data of all repos that have the package
131 alldata_flag=1 132 alldata_flag=1
132 ;; 133 ;;
134 s)
135 # "short" output: if installed from FreeBSD repo: don't
136 # report if only the index is newer
137 short_flag=1
138 ;;
133 v) 139 v)
134 # print all titles and repo of every installed always 140 # print all titles and repo of every installed always
135 verbose_flag=1 141 verbose_flag=1
136 ;; 142 ;;
137 \?) 143 \?)
141 echo "option handling failed" >&2 147 echo "option handling failed" >&2
142 exit 2 148 exit 2
143 ;; 149 ;;
144 esac 150 esac
145 done 151 done
152
153 if [ -n "${short_flag}" -a -n "${alldata_flag}" ]; then
154 echo "the -s option cannot be combined with -A or -a" >&2
155 exit 2
156 fi
146 157
147 installed_packages=$(pkg query '%n') 158 installed_packages=$(pkg query '%n')
148 installed_data="$(pkg query '%n %v %R' $installed_packages)" 159 installed_data="$(pkg query '%n %v %R' $installed_packages)"
149 160
150 get_remote_repo_versions ${LOCAL_REPO} 161 get_remote_repo_versions ${LOCAL_REPO}
166 fi 177 fi
167 get_remote_repo_data ${LOCAL_REPO} ${_installed_name} 178 get_remote_repo_data ${LOCAL_REPO} ${_installed_name}
168 get_remote_repo_data ${LOCALBSDPORTS_REPO} ${_installed_name} 179 get_remote_repo_data ${LOCALBSDPORTS_REPO} ${_installed_name}
169 get_remote_repo_data ${FREEBSD_REPO} ${_installed_name} 180 get_remote_repo_data ${FREEBSD_REPO} ${_installed_name}
170 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 181 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
171 print_title "${lfqp}" "${repository}" 182 _print_detail=""
172 echo " INDEX: ${llabel} ${ldescr}" 183 if [ -n "${short_flag}" ]; then
173 echo " FreeBSD: ${remote_FreeBSD_label} ${remote_FreeBSD_descr}" 184 #
174 if [ \( -n "${alldata_LocalBSDPorts_flag}" \) -o \( "${remote_LocalBSDPorts_label}" != '?' \) ] ; then 185 # NOTE: -s and -A/-a are incompatible: so "alldata_XXX" needs not
175 echo " LocalBSDPorts: ${remote_LocalBSDPorts_label} ${remote_LocalBSDPorts_descr}" 186 # to be checked!
176 fi 187 #
177 if [ \( -n "${alldata_LocalRepo_flag}" \) -o \( "${remote_LocalRepo_label}" != '?' \) ] ; then 188 if [ "${repository}" != "${FREEBSD_REPO}" -o "${llabel}" != '<' -o "${remote_FreeBSD_label}" != '=' -o "${remote_LocalRepo_label}" != '?' -o "${remote_LocalBSDPorts_label}" != '?' ]; then
178 echo " LocalRepo: ${remote_LocalRepo_label} ${remote_LocalRepo_descr}" 189 _print_detail=1
190 fi
191 else
192 _print_detail=1
193 fi
194 if [ -n "${_print_detail}" ]; then
195 print_title "${lfqp}" "${repository}"
196 echo " INDEX: ${llabel} ${ldescr}"
197 echo " FreeBSD: ${remote_FreeBSD_label} ${remote_FreeBSD_descr}"
198 if [ \( -n "${alldata_LocalBSDPorts_flag}" \) -o \( "${remote_LocalBSDPorts_label}" != '?' \) ] ; then
199 echo " LocalBSDPorts: ${remote_LocalBSDPorts_label} ${remote_LocalBSDPorts_descr}"
200 fi
201 if [ \( -n "${alldata_LocalRepo_flag}" \) -o \( "${remote_LocalRepo_label}" != '?' \) ] ; then
202 echo " LocalRepo: ${remote_LocalRepo_label} ${remote_LocalRepo_descr}"
203 fi
179 fi 204 fi
180 fi 205 fi
181 done <<EOF856661111299999 206 done <<EOF856661111299999
182 ${local_index_versions} 207 ${local_index_versions}
183 EOF856661111299999 208 EOF856661111299999