comparison bin/check-ports @ 1:7c9ddbea00c8

Work on the check script
author Franz Glasner <hg@dom66.de>
date Wed, 11 Oct 2017 09:24:41 +0200
parents 08cf7bf119b7
children 86209db28490
comparison
equal deleted inserted replaced
0:08cf7bf119b7 1:7c9ddbea00c8
1 #!/bin/sh 1 #!/bin/sh
2
3 : ${LOCAL_REPO:=LocalRepo}
4 : ${FREEBSD_REPO:=FreeBSD}
5 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository}
2 6
3 installed_packages=$(pkg query '%n') 7 installed_packages=$(pkg query '%n')
4 8
5 #for p in ${installed_packages} ; do 9 #for p in ${installed_packages} ; do
6 # echo -n $p" " 10 # echo -n $p" "
13 # remote_ver=$(pkg rquery -r FreeBSD '%v' $vn) 17 # remote_ver=$(pkg rquery -r FreeBSD '%v' $vn)
14 # version_compare=$(pkg version --test-version ${vv} ${remote_ver}) 18 # version_compare=$(pkg version --test-version ${vv} ${remote_ver})
15 # echo $vn $vv ${remote_ver} ${version_compare} $vR 19 # echo $vn $vv ${remote_ver} ${version_compare} $vR
16 # done 20 # done
17 21
18 installed_data="$(pkg query '%n/%v/%R' $installed_packages)" 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=$?
35 eval remote_${_repo}_data="\"\${_temp}\""
36 return ${_rv}
37 }
38
39 all_remote_data() {
40 _repo="$1"
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 }
63
64 installed_data="$(pkg query '%n|%v|%R' $installed_packages)"
65
66 all_remote_data FreeBSD
67 all_remote_data LocalRepo
19 68
20 _OLDIFS="${IFS}" 69 _OLDIFS="${IFS}"
21 IFS='/' 70 IFS='|'
71
22 while read vn vv vR ; do 72 while read vn vv vR ; do
23 remote_ver=$(pkg rquery -r FreeBSD '%v' $vn) 73 if [ "${vR}" = "unknown-repository" ] ; then
24 if [ "${vR}" != "unknown-repository" ] ; then 74 _local_ver_label="$(pkg version -U -I -n ${vn} | sed -E -e 's/.+[[:space:]]+//')"
25 version_compare=$(pkg version --test-version ${vv} ${remote_ver}) 75 elif [ "${vR}" = "${LOCAL_REPO}" ] ; then
26 if [ "${version_compare}" != '=' ] ; then 76 query_repo "${vR}" "${vn}"
27 echo $vn $vv ${version_compare} ${remote_ver} $vR 77 elif [ "${vR}" = "${FREEBSD_REPO}" ] ; then
28 fi 78 query_repo "${vR}" "${vn}"
79 else
80 echo "UNKNOWN REPOSITORY \`${vR}' for packet \`${vn}'" >&2
29 fi 81 fi
30 done <<EOFEOFEOF687 82 done <<EOFEOFEOF687
31 ${installed_data} 83 ${installed_data}
32 EOFEOFEOF687 84 EOFEOFEOF687