Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
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 |
