annotate bin/check-ports @ 67:259e2a4b4ca6

Enhance keyword expansion: HGid and Header are now provided. Used currently in this project: $HGid$
author Franz Glasner <hg@dom66.de>
date Thu, 21 Mar 2019 16:47:51 +0100
parents 1f3a64254c9c
children 671130d10c21
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
08cf7bf119b7 Current version of a tool to check the versions of installed ports against the source ports tree and other binary repositories
Franz Glasner <hg@dom66.de>
parents:
diff changeset
1 #!/bin/sh
16
08fc189baf67 Put some keyword expansion into the port.
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
2 #
67
259e2a4b4ca6 Enhance keyword expansion: HGid and Header are now provided.
Franz Glasner <hg@dom66.de>
parents: 66
diff changeset
3 # @(#) $HGid$
16
08fc189baf67 Put some keyword expansion into the port.
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
4 #
0
08cf7bf119b7 Current version of a tool to check the versions of installed ports against the source ports tree and other binary repositories
Franz Glasner <hg@dom66.de>
parents:
diff changeset
5
17
089afc4908c0 Expand @@VERSION@@ with the package version also
Franz Glasner <hg@dom66.de>
parents: 16
diff changeset
6 VERSION=@@VERSION@@
089afc4908c0 Expand @@VERSION@@ with the package version also
Franz Glasner <hg@dom66.de>
parents: 16
diff changeset
7
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
8 #
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
9 # Configuration directory
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
10 #
66
1f3a64254c9c Replace @@ETCDIR@@ and @@INDEXFILE@@ dynamically at package build time
Franz Glasner <hg@dom66.de>
parents: 64
diff changeset
11 : ${CONFIGDIR:=@@ETCDIR@@}
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
12
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
13 #
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
14 # Mapping configuration: installed package name -> original package name
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
15 # Note: This is independent of any repo
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
16 #
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
17 : ${PACKAGE_MAPPING:=${CONFIGDIR}/package-mapping.conf}
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
18
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
19 #
55
97db540472bd Doc: enhanced comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 52
diff changeset
20 # Local repository with non-public packages and/or ports with changed
97db540472bd Doc: enhanced comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 52
diff changeset
21 # OPTIONS (i.e. not using the defaults) or forks of official packages with
97db540472bd Doc: enhanced comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 52
diff changeset
22 # other package names
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
23 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
24 : ${LOCAL_REPO:=LocalRepo}
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
25
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
26 #
15
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
27 # Local repository with ports with default OPTIONS (i.e. unchanged)
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
28 # but newer than the packages in the "FreeBSD" repository.
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
29 # Some sort of a fast-track repository.
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
30 #
23
242055572964 FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 22
diff changeset
31 : ${LOCALBSDPORTS_REPO:=LocalBSDPorts}
59
4805789ebbb3 Style: WS
Franz Glasner <fzglas.hg@dom66.de>
parents: 58
diff changeset
32
15
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
33 #
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
34 # The official FreeBSD binary repository
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
35 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
36 : ${FREEBSD_REPO:=FreeBSD}
59
4805789ebbb3 Style: WS
Franz Glasner <fzglas.hg@dom66.de>
parents: 58
diff changeset
37
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
38 #
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
39 # Directly installed from ports
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
40 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
41 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository}
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
42
64
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
43 #
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
44 # For the workaround of the bug in pkg rquery -I
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
45 #
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
46 : ${PORTSDIR:=/usr/ports}
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
47 : ${INDEXDIR:=${PORTSDIR}}
66
1f3a64254c9c Replace @@ETCDIR@@ and @@INDEXFILE@@ dynamically at package build time
Franz Glasner <hg@dom66.de>
parents: 64
diff changeset
48 : ${INDEXFILE:=@@INDEXFILE@@}
64
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
49
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
50
5
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
51 get_remote_repo_versions() {
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
52 local _repo _data _rv
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
53
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
54 _repo=$1
0
08cf7bf119b7 Current version of a tool to check the versions of installed ports against the source ports tree and other binary repositories
Franz Glasner <hg@dom66.de>
parents:
diff changeset
55
5
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
56 _data=$(pkg version -U -R -r ${_repo} -v)
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
57 _rv=$?
60
ec0cc8a8f27a Renamed remote_REPO_versions to remote_versions_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 59
diff changeset
58 eval remote_versions_${_repo}=\"\${_data}\"
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
59 return ${_rv}
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
60 }
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
61
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
62 get_remote_repo_data() {
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
63 local _repo _name _rversions _rfqp _rl _rdescr
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
64
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
65 _repo=$1
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
66 _name=$2
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
67
60
ec0cc8a8f27a Renamed remote_REPO_versions to remote_versions_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 59
diff changeset
68 eval _rversions=\"\${remote_versions_${_repo}}\"
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
69 while read _rfqp _rl _rdescr ; do
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
70 if [ ${_rfqp%-*} = ${_name} ] ; then
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
71 eval remote_label_${_repo}=\"\${_rl}\"
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
72 eval remote_descr_${_repo}=\"\${_rdescr}\"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
73 return 0
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
74 fi
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
75 done <<EOF884657
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
76 ${_rversions}
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
77 EOF884657
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
78 eval remote_label_${_repo}=""
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
79 eval remote_descr_${_repo}=""
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
80 return 1
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
81 }
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
82
5
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
83 get_local_index_versions() {
6
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
84 local_index_versions=$(pkg version -I -v)
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
85 }
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
86
56
ad454e403e24 Rename function: has now a better name
Franz Glasner <fzglas.hg@dom66.de>
parents: 55
diff changeset
87 get_repo_for_installed_package() {
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
88 local _name _n _v _r
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
89
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
90 _name=$1
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
91
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
92 while read _n _v _r ; do
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
93 if [ ${_name} = ${_n} ] ; then
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
94 repository=${_r}
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
95 return 0
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
96 fi
23
242055572964 FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 22
diff changeset
97 done <<EOF223777
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
98 ${installed_data}
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
99 EOF223777
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
100 return 1
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
101 }
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
102
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
103 get_immediate_index_version() {
64
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
104 local _package _line _fqpn _n _lines
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
105
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
106 _package=$1
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
107
64
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
108 # _val=$(pkg rquery -I "${_package}" | cut -f 1 -d '|')
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
109 # _rv=$?
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
110 # immediate_index_version=${_val##*-}
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
111 # return ${_rv}
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
112
64
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
113 if [ -r "${INDEXDIR}/${INDEXFILE}" ] ; then
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
114 #
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
115 # Note: Direct piping does not set immediate_index_version at return correctly
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
116 # "_line" is set correctly and parsing works, but the return 0 seems to kill
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
117 # some of the previous effects.
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
118 #
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
119 # "grep" does a fast pre-selection, reading, parsing and comparing is done for
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
120 # exact matching.
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
121 #
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
122 _lines=$(egrep '^'"${_package}" "${INDEXDIR}/${INDEXFILE}")
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
123 while read _line ; do
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
124 _fqpn="${_line%%|*}"
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
125 _n=${_fqpn%-*}
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
126 if [ "${_package}" = "${_n}" ] ; then
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
127 immediate_index_version="${_fqpn##*-}"
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
128 return 0
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
129 fi
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
130 done <<EOF1334TGH1
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
131 ${_lines}
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
132 EOF1334TGH1
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
133 fi
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
134
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
135 immediate_index_version=""
ffd5f575edd5 FIX: Work around the bug in "pkg rquery -i" not asking the port's INDEX file.
Franz Glasner <hg@dom66.de>
parents: 63
diff changeset
136 return 1
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
137 }
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
138
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
139 get_immediate_remote_repo_version() {
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
140 local _repo _name _version _rv
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
141
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
142 _repo=$1
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
143 _name=$2
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
144
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
145 _version=$(pkg rquery -U -r "${_repo}" '%v' "${_name}")
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
146 _rv=$?
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
147 eval immediate_remote_repo_version_${_repo}=\"\${_version}\"
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
148 return ${_rv}
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
149 }
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
150
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
151 assert_local_version() {
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
152 local _name _version _n _v _r
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
153
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
154 _name=$1
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
155 _version=$2
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
156
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
157 while read _n _v _r ; do
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
158 if [ ${_name} = ${_n} ] ; then
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
159 if [ ${_version} != ${_v} ] ; then
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
160 return 1
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
161 else
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
162 return 0
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
163 fi
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
164 fi
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
165 done <<EOF223
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
166 ${installed_data}
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
167 EOF223
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
168 return 2
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
169 }
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
170
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
171 get_mapping() {
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
172 local _package _n _mapped
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
173
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
174 _package=$1
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
175
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
176 if [ -r "${PACKAGE_MAPPING}" ] ; then
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
177 while read _n _mapped ; do
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
178 if [ "${_n}" = "${_package}" ] ; then
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
179 mapped_package_name="${_mapped}"
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
180 return 0
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
181 fi
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
182 done < ${PACKAGE_MAPPING}
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
183 fi
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
184 mapped_package_name=""
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
185 return 1
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
186 }
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
187
31
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
188 print_title() {
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
189 local _package _repo
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
190
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
191 _package=$1
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
192 _repo=$2
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
193 if [ -z "${title_printed}" ] ; then
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
194 echo "${_package} (${_repo})"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
195 title_printed=yes
31
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
196 fi
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
197 }
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
198
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
199
10
f08b39dacb21 Implemented "-A" and "-a" options for printing info for all installed packages and/or with LocalRepo data
Franz Glasner <hg@dom66.de>
parents: 9
diff changeset
200 alldata_flag=""
61
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
201 alldata_flag_LocalBSDPorts=""
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
202 alldata_flag_LocalRepo=""
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
203 short_flag=""
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
204 verbose_flag=""
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
205
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
206 while getopts "Aasv" _opt ; do
10
f08b39dacb21 Implemented "-A" and "-a" options for printing info for all installed packages and/or with LocalRepo data
Franz Glasner <hg@dom66.de>
parents: 9
diff changeset
207 case ${_opt} in
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
208 A)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
209 # print for every package the status of all repositories
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
210 alldata_flag=1
61
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
211 alldata_flag_LocalBSDPorts=1
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
212 alldata_flag_LocalRepo=1
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
213 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
214 a)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
215 # print the data of all repos that have the package
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
216 alldata_flag=1
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
217 ;;
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
218 s)
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
219 # "short" output: if installed from FreeBSD repo: don't
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
220 # report if only the index is newer
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
221 short_flag=1
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
222 ;;
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
223 v)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
224 # print all titles and repo of every installed always
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
225 verbose_flag=1
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
226 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
227 \?)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
228 exit 2
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
229 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
230 *)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
231 echo "option handling failed" >&2
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
232 exit 2
42
ace5d471abbd Code style
Franz Glasner <hg@dom66.de>
parents: 34
diff changeset
233 ;;
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
234 esac
12
fd56d1b7d822 Use extra flag for controlling the printing of the package title
Franz Glasner <hg@dom66.de>
parents: 11
diff changeset
235 done
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
236
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
237 if [ -n "${short_flag}" -a -n "${alldata_flag}" ]; then
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
238 echo "the -s option cannot be combined with -A or -a" >&2
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
239 exit 2
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
240 fi
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
241
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
242 installed_packages=$(pkg query '%n')
4
ba95569a12b1 Use standars word separators again (i.e. don't change IFS)
Franz Glasner <hg@dom66.de>
parents: 3
diff changeset
243 installed_data="$(pkg query '%n %v %R' $installed_packages)"
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
244
5
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
245 get_remote_repo_versions ${LOCAL_REPO}
23
242055572964 FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 22
diff changeset
246 get_remote_repo_versions ${LOCALBSDPORTS_REPO}
5
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
247 get_remote_repo_versions ${FREEBSD_REPO}
53c3500894d2 Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents: 4
diff changeset
248 get_local_index_versions
6
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
249
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
250 while read lfqp llabel ldescr ; do
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
251 _installed_name=${lfqp%-*}
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
252 _installed_version=${lfqp##*-}
31
abe1659ff3c1 Refactor: a "print_title()" function which prints the title line (package and repo) if its not yet printed
Franz Glasner <hg@dom66.de>
parents: 24
diff changeset
253 title_printed=""
56
ad454e403e24 Rename function: has now a better name
Franz Glasner <fzglas.hg@dom66.de>
parents: 55
diff changeset
254 get_repo_for_installed_package ${_installed_name}
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
255 get_mapping ${_installed_name}
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
256 if [ -n "${verbose_flag}" ] ; then
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
257 print_title "${lfqp}" "${repository}"
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
258 fi
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
259 if ! assert_local_version ${_installed_name} ${_installed_version} ; then
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
260 echo "Assertion failed: $lfqp ${_installed_name} ${_installed_version} ${llabel}" >&2
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
261 exit 1
7
2712d249c371 Assert that the installed version number we get from "pkg query" is the same as the version in "pkg version"
Franz Glasner <hg@dom66.de>
parents: 6
diff changeset
262 fi
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
263 get_remote_repo_data ${LOCAL_REPO} ${_installed_name}
23
242055572964 FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 22
diff changeset
264 get_remote_repo_data ${LOCALBSDPORTS_REPO} ${_installed_name}
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
265 get_remote_repo_data ${FREEBSD_REPO} ${_installed_name}
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
266 _print_detail=""
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
267 if [ -n "${mapped_package_name}" ] ; then
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
268 _print_detail=1
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
269 fi
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
270 if [ \( -n "${alldata_flag}" \) ]; then
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
271 _print_detail=1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
272 else
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
273 if [ -n "${short_flag}" ]; then
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
274 #
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
275 # NOTE: -s and -A/-a are incompatible: so "alldata_XXX" needs not
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
276 # to be checked!
36a10ff20355 Implemented a -s (short) flag that filters output if the repo is FreeBSD and only the local portstree INDEX has a newer version
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
277 #
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
278 case "${repository}" in
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
279 "${FREEBSD_REPO}")
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
280 if [ \( "${llabel}" != '<' -a "${llabel}" != '=' \) -o "${remote_label_FreeBSD}" != '=' -o "${remote_label_LocalRepo}" != '?' -o "${remote_label_LocalBSDPorts}" != '?' ]; then
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
281 _print_detail=1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
282 fi
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
283 ;;
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
284 "${LOCAL_REPO}")
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
285 _print_detail=1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
286 ;;
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
287 "${LOCALBSDPORTS_REPO}")
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
288 if [ "${llabel}" != '=' -o "${remote_label_FreeBSD}" != '>' -o "${remote_label_LocalRepo}" != '?' -o "${remote_label_LocalBSDPorts}" = '?' -o "${remote_label_LocalBSDPorts}" = '<' ]; then
50
f4352f7b5c86 When running in "-s"-mode: extra intelligence when the repo is LocalBSDPorts
Franz Glasner <hg@dom66.de>
parents: 49
diff changeset
289 _print_detail=1
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
290 fi
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
291 ;;
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
292 "${PORTS_DIRECT_INSTALLED_REPO}")
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
293 _print_detail=1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
294 ;;
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
295 *)
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
296 echo "ERROR: unhandled repository: ${repository}" >&2
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
297 exit 1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
298 ;;
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
299 esac
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
Franz Glasner <hg@dom66.de>
parents: 33
diff changeset
300 else
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
301 if [ \( \( "${llabel}" != '?' -a "${llabel}" != '=' \) -o \( "${remote_label_FreeBSD}" != '?' -a "${remote_label_FreeBSD}" != '=' \) -o \( "${remote_label_LocalBSDPorts}" != '?' -a "${remote_label_LocalBSDPorts}" != '=' \) -o \( "${remote_label_LocalRepo}" != '?' -a "${remote_label_LocalRepo}" != '=' \) \) -o \( "${repository}" = "${PORTS_DIRECT_INSTALLED_REPO}" \) ]; then
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
302 _print_detail=1
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
303 fi
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
304 fi
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
305 fi
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
306 if [ -n "${_print_detail}" ]; then
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
307 print_title "${lfqp}" "${repository}"
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
308 echo " INDEX : ${llabel} ${ldescr}"
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
309 echo " FreeBSD : ${remote_label_FreeBSD} ${remote_descr_FreeBSD}"
61
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
310 if [ \( -n "${alldata_flag_LocalBSDPorts}" \) -o \( "${remote_label_LocalBSDPorts}" != '?' \) ] ; then
58
28800573d702 Rename variables: the repo name in the "label" and "descr" variables at the end of the variable name
Franz Glasner <fzglas.hg@dom66.de>
parents: 56
diff changeset
311 echo " LocalBSDPorts: ${remote_label_LocalBSDPorts} ${remote_descr_LocalBSDPorts}"
51
9e131a355fbe Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents: 50
diff changeset
312 fi
61
26cf051f6c93 Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
313 if [ \( -n "${alldata_flag_LocalRepo}" \) -o \( "${remote_label_LocalRepo}" != '?' \) ] ; then
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
314 echo " LocalRepo : ${remote_label_LocalRepo} ${remote_descr_LocalRepo}"
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
315 fi
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
316 if [ -n "${mapped_package_name}" ] ; then
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
317 echo " ---> ${mapped_package_name}"
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
318 get_immediate_index_version "${mapped_package_name}"
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
319 get_immediate_remote_repo_version ${LOCAL_REPO} ${mapped_package_name}
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
320 get_immediate_remote_repo_version ${LOCALBSDPORTS_REPO} ${mapped_package_name}
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
321 get_immediate_remote_repo_version ${FREEBSD_REPO} ${mapped_package_name}
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
322 echo " INDEX : ${immediate_index_version}"
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
323 echo " FreeBSD : ${immediate_remote_repo_version_FreeBSD}"
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
324 echo " LocalBSDPorts: ${immediate_remote_repo_version_LocalBSDPorts}"
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
325 echo " LocalRepo : ${immediate_remote_repo_version_LocalRepo}"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
326 fi
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
327 fi
6
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
328 done <<EOF856661111299999
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
329 ${local_index_versions}
0d9a499e89e9 More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents: 5
diff changeset
330 EOF856661111299999