comparison bin/check-ports @ 64:ffd5f575edd5

FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file. Parse the index file directly.
author Franz Glasner <hg@dom66.de>
date Thu, 21 Mar 2019 15:48:58 +0100
parents 0ae7697702b3
children 1f3a64254c9c
comparison
equal deleted inserted replaced
63:0ae7697702b3 64:ffd5f575edd5
40 40
41 # 41 #
42 # Directly installed from ports 42 # Directly installed from ports
43 # 43 #
44 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} 44 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository}
45
46 #
47 # For the workaround of the bug in pkg rquery -I
48 #
49 : ${PORTSDIR:=/usr/ports}
50 : ${INDEXDIR:=${PORTSDIR}}
51 : ${INDEXFILE:=INDEX-11}
52
45 53
46 get_remote_repo_versions() { 54 get_remote_repo_versions() {
47 local _repo _data _rv 55 local _repo _data _rv
48 56
49 _repo=$1 57 _repo=$1
94 EOF223777 102 EOF223777
95 return 1 103 return 1
96 } 104 }
97 105
98 get_immediate_index_version() { 106 get_immediate_index_version() {
99 local _name _val _rv 107 local _package _line _fqpn _n _lines
100 108
101 _name=$1 109 _package=$1
102 110
103 _val=$(pkg rquery -I "${_name}" | cut -f 1 -d '|') 111 # _val=$(pkg rquery -I "${_package}" | cut -f 1 -d '|')
104 _rv=$? 112 # _rv=$?
105 immediate_index_version=${_val##*-} 113 # immediate_index_version=${_val##*-}
106 return ${_rv} 114 # return ${_rv}
115
116 if [ -r "${INDEXDIR}/${INDEXFILE}" ] ; then
117 #
118 # Note: Direct piping does not set immediate_index_version at return correctly
119 # "_line" is set correctly and parsing works, but the return 0 seems to kill
120 # some of the previous effects.
121 #
122 # "grep" does a fast pre-selection, reading, parsing and comparing is done for
123 # exact matching.
124 #
125 _lines=$(egrep '^'"${_package}" "${INDEXDIR}/${INDEXFILE}")
126 while read _line ; do
127 _fqpn="${_line%%|*}"
128 _n=${_fqpn%-*}
129 if [ "${_package}" = "${_n}" ] ; then
130 immediate_index_version="${_fqpn##*-}"
131 return 0
132 fi
133 done <<EOF1334TGH1
134 ${_lines}
135 EOF1334TGH1
136 fi
137
138 immediate_index_version=""
139 return 1
107 } 140 }
108 141
109 get_immediate_remote_repo_version() { 142 get_immediate_remote_repo_version() {
110 local _repo _name _version _rv 143 local _repo _name _version _rv
111 144