comparison bin/check-ports @ 5:53c3500894d2

Begin a new implementation algorithm
author Franz Glasner <hg@dom66.de>
date Mon, 16 Oct 2017 09:50:55 +0200
parents ba95569a12b1
children 0d9a499e89e9
comparison
equal deleted inserted replaced
4:ba95569a12b1 5:53c3500894d2
4 : ${FREEBSD_REPO:=FreeBSD} 4 : ${FREEBSD_REPO:=FreeBSD}
5 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} 5 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository}
6 6
7 installed_packages=$(pkg query '%n') 7 installed_packages=$(pkg query '%n')
8 8
9 #for p in ${installed_packages} ; do 9 get_remote_repo_versions() {
10 # echo -n $p" " 10 _repo="$1"
11 # pkg query '%v' $p
12 # pkg rquery '%v' $p
13 #done
14 11
15 #pkg query '%n %v %R' $installed_packages | 12 _data=$(pkg version -U -R -r ${_repo} -v)
16 # while read vn vv vR ; do#
17 # remote_ver=$(pkg rquery -r FreeBSD '%v' $vn)
18 # version_compare=$(pkg version --test-version ${vv} ${remote_ver})
19 # echo $vn $vv ${remote_ver} ${version_compare} $vR
20 # done
21
22 do_rquery() {
23 _repo="$1"
24 _packagage_name="$2"
25
26 remote_ver=$(pkg rquery -U -r ${_repo} '%v' ${_package_name})
27 }
28
29 remote_data() {
30 _repo="$1"
31 shift
32
33 _temp=$(pkg rquery -U -r "${_repo}" '%n %v' "$@")
34 _rv=$? 13 _rv=$?
35 eval remote_${_repo}_data="\"\${_temp}\"" 14 eval remote_${_repo}_versions=\"\${_data}\"
36 return ${_rv} 15 return ${_rv}
37 } 16 }
38 17
39 all_remote_data() { 18 get_local_index_versions() {
40 _repo="$1" 19 local_index_versions="$(pkg version -I -v)"
41 _temp=$(pkg rquery -U -r "${_repo}" --all '%n %v')
42 _rv=$?
43 eval remote_${_repo}_data="\"\${_temp}\""
44 return ${_rv}
45 }
46
47 query_repo() {
48 _repo="$1"
49 _package_name="$2"
50
51 eval _repo_packages="\${remote_${_repo}_data}"
52 while read _p _v ; do
53 if [ "$_p" = "${_package_name}" ] ; then
54 repo_version="${_v}"
55 return 0
56 fi
57 done <<EOFABCDEFG43
58 ${_repo_packages}
59 EOFABCDEFG43
60 repo_version=""
61 return 1
62 } 20 }
63 21
64 installed_data="$(pkg query '%n %v %R' $installed_packages)" 22 installed_data="$(pkg query '%n %v %R' $installed_packages)"
65 23
66 remote_data FreeBSD ${installed_packages} 24 get_remote_repo_versions ${LOCAL_REPO}
67 remote_data LocalRepo ${installed_packages} 25 get_remote_repo_versions ${FREEBSD_REPO}
68 26 get_local_index_versions
69 while read vn vv vR ; do
70 if [ "${vR}" = "${PORTS_DIRECT_INSTALLED_REPO}" ] ; then
71 _local_ver_label="$(pkg version -U -I -n ${vn} | sed -E -e 's/.+[[:space:]]+//')"
72 echo ${_local_ver_label}
73 elif [ "${vR}" = "${LOCAL_REPO}" ] ; then
74 if ! query_repo "${vR}" "${vn}" ; then
75 echo "ERROR: ${vn} ${vR}"
76 else
77 echo "REPO: ${repo_version} vs. installed version ${vv}"
78 fi
79 elif [ "${vR}" = "${FREEBSD_REPO}" ] ; then
80 if ! query_repo "${vR}" "${vn}" ; then
81 echo "ERROR 2: ${vn} ${vR}"
82 fi
83 else
84 echo "UNKNOWN REPOSITORY \`${vR}' for packet \`${vn}'" >&2
85 fi
86 done <<EOFEOFEOF687
87 ${installed_data}
88 EOFEOFEOF687