Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
annotate sbin/check-ports @ 137:dbbb04c46d97
Remove unneeded round brackets (parentheses)
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 23 Oct 2019 09:33:00 +0200 |
| parents | 8afc4eb30406 |
| children | 850ebdb132d1 |
| 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 |
| 79 | 2 # -*- indent-tabs-mode: nil; -*- |
|
86
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
3 : 'Check the version status of installed ports and compare them to |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
4 repository versions. |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
5 |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
6 :Author: Franz Glasner |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
7 :Copyright: (c) 2017-2019 Franz Glasner. |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
8 All rights reserved. |
|
99
7a064049405f
Use the "Full name" in the license section
Franz Glasner <fzglas.hg@dom66.de>
parents:
94
diff
changeset
|
9 :License: BSD 3-Clause "New" or "Revised" License. |
|
86
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
10 See LICENSE for details. |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
11 If you cannot find LICENSE see |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
12 <https://opensource.org/licenses/BSD-3-Clause> |
| 93 | 13 :ID: @(#)@@PKGORIGIN@@ $HGid$ |
|
86
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
14 |
|
a3b9d4fe560e
Provide "module" doc-strings
Franz Glasner <fzglas.hg@dom66.de>
parents:
85
diff
changeset
|
15 ' |
|
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
|
16 |
|
130
54de2955bfa9
Put @@VERSION@@ and @@HGREVISION@@ in single quotes
Franz Glasner <fzglas.hg@dom66.de>
parents:
128
diff
changeset
|
17 VERSION='@@VERSION@@' |
|
17
089afc4908c0
Expand @@VERSION@@ with the package version also
Franz Glasner <hg@dom66.de>
parents:
16
diff
changeset
|
18 |
|
14
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
19 # |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
20 # Configuration directory |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
21 # |
|
66
1f3a64254c9c
Replace @@ETCDIR@@ and @@INDEXFILE@@ dynamically at package build time
Franz Glasner <hg@dom66.de>
parents:
64
diff
changeset
|
22 : ${CONFIGDIR:=@@ETCDIR@@} |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
23 |
|
131
993fecdf2a70
Rename etc/tools.conf to etc/pkgtools.conf.
Franz Glasner <fzglas.hg@dom66.de>
parents:
130
diff
changeset
|
24 test -r "${CONFIGDIR}/pkgtools.conf" && . "${CONFIGDIR}/pkgtools.conf" |
|
109
0bd594fb56f8
Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents:
108
diff
changeset
|
25 |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
26 # |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
27 # 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
|
28 # 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
|
29 # |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
30 : ${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
|
31 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
32 # |
| 55 | 33 # Local repository with non-public packages and/or ports with changed |
| 34 # OPTIONS (i.e. not using the defaults) or forks of official packages with | |
| 136 | 35 # other package names. |
| 36 # This repo is strictly *local* to the host and/or jail. | |
|
14
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
37 # |
| 1 | 38 : ${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
|
39 |
|
14
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
40 # |
| 136 | 41 # (Shared) repository with ports with default OPTIONS (i.e. unchanged) |
|
15
532757223c28
Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents:
14
diff
changeset
|
42 # but newer than the packages in the "FreeBSD" repository. |
| 136 | 43 # Can also contain non-FreeBSD *public* packages. |
| 44 # May be shared. | |
|
15
532757223c28
Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents:
14
diff
changeset
|
45 # Some sort of a fast-track repository. |
|
532757223c28
Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents:
14
diff
changeset
|
46 # |
|
23
242055572964
FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
22
diff
changeset
|
47 : ${LOCALBSDPORTS_REPO:=LocalBSDPorts} |
| 59 | 48 |
|
15
532757223c28
Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents:
14
diff
changeset
|
49 # |
|
14
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
50 # The official FreeBSD binary repository |
|
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
51 # |
| 1 | 52 : ${FREEBSD_REPO:=FreeBSD} |
| 59 | 53 |
|
14
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
54 # |
|
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
55 # Directly installed from ports |
|
c0e2eb5613fe
Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents:
12
diff
changeset
|
56 # |
| 1 | 57 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository} |
| 58 | |
|
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
|
59 # |
|
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
|
60 # 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
|
61 # |
|
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
|
62 : ${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
|
63 : ${INDEXDIR:=${PORTSDIR}} |
|
66
1f3a64254c9c
Replace @@ETCDIR@@ and @@INDEXFILE@@ dynamically at package build time
Franz Glasner <hg@dom66.de>
parents:
64
diff
changeset
|
64 : ${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
|
65 |
|
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
|
66 |
|
5
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
67 get_remote_repo_versions() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
68 : 'Determine the remote repository versions of all packages in |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
69 repository `_repo`. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
70 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
71 Args: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
72 _repo: the name of the repote repository |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
73 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
74 Returns: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
75 status 0 on success, 1 on errors |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
76 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
77 Output (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
78 remote_versions_${_repo}: the versions of all packages in `_repo` and |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
79 their extended version status with respect to |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
80 locally installed packages |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
81 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
82 ' |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
83 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
|
84 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
85 _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
|
86 |
|
5
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
87 _data=$(pkg version -U -R -r ${_repo} -v) |
| 1 | 88 _rv=$? |
|
60
ec0cc8a8f27a
Renamed remote_REPO_versions to remote_versions_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
59
diff
changeset
|
89 eval remote_versions_${_repo}=\"\${_data}\" |
| 1 | 90 return ${_rv} |
| 91 } | |
| 92 | |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
93 get_remote_repo_data() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
94 : 'Get the extended package version information from the remote repository |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
95 `_repo` for package `_name`. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
96 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
97 Args: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
98 _repo: the name of the remote repository |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
99 _name: the package name |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
100 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
101 Input (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
102 remote_versions_${_repo}: the extended version info for *all* packages |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
103 in repo `_repo`. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
104 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
105 Returns: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
106 status 0 on success, 1 on errors or if the package is not found |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
107 in the remote repository |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
108 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
109 Output (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
110 remote_label_${_repo}: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
111 remote_descr_${_repo}: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
112 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
113 ' |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
114 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
|
115 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
116 _repo=$1 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
117 _name=$2 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
118 |
|
60
ec0cc8a8f27a
Renamed remote_REPO_versions to remote_versions_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
59
diff
changeset
|
119 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
|
120 while read _rfqp _rl _rdescr ; do |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
121 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
|
122 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
|
123 eval remote_descr_${_repo}=\"\${_rdescr}\" |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
124 return 0 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
125 fi |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
126 done <<EOF884657 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
127 ${_rversions} |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
128 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
|
129 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
|
130 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
|
131 return 1 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
132 } |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
133 |
|
5
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
134 get_local_index_versions() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
135 : 'Determine the extendes versions of all packages in the local index |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
136 (ports). |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
137 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
138 Returns: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
139 status 0 on success or 1 on errors |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
140 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
141 Output (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
142 local_index_versions: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
143 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
144 ' |
|
6
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
145 local_index_versions=$(pkg version -I -v) |
| 1 | 146 } |
| 147 | |
|
56
ad454e403e24
Rename function: has now a better name
Franz Glasner <fzglas.hg@dom66.de>
parents:
55
diff
changeset
|
148 get_repo_for_installed_package() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
149 : 'Determine for a package `_name` from which repository is has been |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
150 installed. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
151 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
152 Args: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
153 _name: the name of the package to search for |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
154 |
|
102
91fb0af73fce
Docu: for "get_repo_for_installed_package()()" extended
Franz Glasner <fzglas.hg@dom66.de>
parents:
101
diff
changeset
|
155 Input (Globals): |
|
91fb0af73fce
Docu: for "get_repo_for_installed_package()()" extended
Franz Glasner <fzglas.hg@dom66.de>
parents:
101
diff
changeset
|
156 installed_data the output of ``pkg query "%n %v %R"`` of all |
|
91fb0af73fce
Docu: for "get_repo_for_installed_package()()" extended
Franz Glasner <fzglas.hg@dom66.de>
parents:
101
diff
changeset
|
157 installed packages |
|
91fb0af73fce
Docu: for "get_repo_for_installed_package()()" extended
Franz Glasner <fzglas.hg@dom66.de>
parents:
101
diff
changeset
|
158 |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
159 Returns: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
160 0 on success, 1 on errors or if the package is not installed |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
161 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
162 Output (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
163 repository: the repository from which the installed packages `_name` |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
164 has been installed |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
165 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
166 ' |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
167 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
|
168 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
169 _name=$1 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
170 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
171 while read _n _v _r ; do |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
172 if [ ${_name} = ${_n} ] ; then |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
173 repository=${_r} |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
174 return 0 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
175 fi |
|
23
242055572964
FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
22
diff
changeset
|
176 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
|
177 ${installed_data} |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
178 EOF223777 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
179 return 1 |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
180 } |
|
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
181 |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
182 get_immediate_index_version() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
183 : 'Determine for package `_package` the version of the package in the |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
184 local ports index. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
185 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
186 Args: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
187 _package: the package name to search for |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
188 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
189 Input (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
190 INDEXDIR: the directory where to search the index file |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
191 INDEXFILE: the name of the index file |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
192 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
193 Returns: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
194 0 on success, 1 on errors or if the package is not in the index |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
195 |
| 100 | 196 Output (Globals): |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
197 immediate_index_version: the version number of `_package` in the |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
198 index |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
199 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
200 ' |
|
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
|
201 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
|
202 |
|
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
|
203 _package=$1 |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
204 |
|
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
|
205 # _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
|
206 # _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
|
207 # 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
|
208 # return ${_rv} |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
209 |
|
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
|
210 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
|
211 # |
|
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
|
212 # 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
|
213 # "_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
|
214 # 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
|
215 # |
|
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
|
216 # "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
|
217 # 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
|
218 # |
|
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
|
219 _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
|
220 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
|
221 _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
|
222 _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
|
223 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
|
224 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
|
225 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
|
226 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
|
227 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
|
228 ${_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
|
229 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
|
230 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
|
231 |
|
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
|
232 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
|
233 return 1 |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
234 } |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
235 |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
236 get_immediate_remote_repo_version() { |
|
118
cf9dde7a3a0d
FIX: Syntax error: there must be a word separator after the ":" command
Franz Glasner <fzglas.hg@dom66.de>
parents:
109
diff
changeset
|
237 : 'Ask a remote repository for the version of a package. |
|
108
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
238 |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
239 Args: |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
240 _repo: the repository name |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
241 _name: the name of the package |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
242 |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
243 Returns: |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
244 0 on success and other status codes otherwise |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
245 |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
246 Output (Globals): |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
247 immediate_remote_repo_version_${_repo}: the version of package `_name` |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
248 in repo `_repo` |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
249 |
|
ef1551e7cb16
Docu: get_immediate_remote_repo_version() is documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
103
diff
changeset
|
250 ' |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
251 local _repo _name _version _rv |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
252 |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
253 _repo=$1 |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
254 _name=$2 |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
255 |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
256 _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
|
257 _rv=$? |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
258 eval immediate_remote_repo_version_${_repo}=\"\${_version}\" |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
259 return ${_rv} |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
260 } |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
261 |
|
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 assert_local_version() { |
|
103
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
263 : 'Check whether an installed package `_name` has given |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
264 version `_version`. |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
265 |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
266 Args: |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
267 _name: the package name |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
268 _version: the version to check for |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
269 |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
270 Input (Globals): |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
271 installed_data: the output of ``pkg query "%n %v %R"`` of all |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
272 installed packages |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
273 |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
274 Returns: |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
275 - 0 if the installed version of package `_name` is equal to `_version` |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
276 - 1 if the installed version of package `_name` differs from `_version` |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
277 - 2 on other errors |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
278 |
|
05058a166e6e
Docu: assert_local_version() documented
Franz Glasner <fzglas.hg@dom66.de>
parents:
102
diff
changeset
|
279 ' |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
280 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
|
281 |
|
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
|
282 _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
|
283 _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
|
284 |
|
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
|
285 while read _n _v _r ; do |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
286 if [ ${_name} = ${_n} ] ; then |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
287 if [ ${_version} != ${_v} ] ; then |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
288 return 1 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
289 else |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
290 return 0 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
291 fi |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
292 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
|
293 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
|
294 ${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
|
295 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
|
296 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
|
297 } |
|
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
|
298 |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
299 get_mapping() { |
|
101
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
300 : 'Determine whether a package `_package` is essentially the same as |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
301 another package. |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
302 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
303 Args: |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
304 _package: the new name of the package |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
305 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
306 Returns: |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
307 0 when a package mapping has been found, 1 otherwise |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
308 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
309 Output (Globals): |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
310 mapped_package_name: the name of the package on which `_package` is |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
311 based on |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
312 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
313 This command reads from the mapping database in in file |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
314 `/usr/local/etc/local-bsdtools/package-mapping.conf`. |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
315 Example:: |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
316 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
317 # |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
318 # _package mapped_package_name |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
319 # |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
320 fmg-nextcloud-php71 nextcloud-php71 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
321 fmg-nextcloud-twofactor_totp-php71 nextcloud-twofactor_totp-php71 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
322 |
|
bf8f0aa3c698
Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents:
100
diff
changeset
|
323 ' |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
324 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
|
325 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
326 _package=$1 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
327 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
328 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
|
329 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
|
330 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
|
331 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
|
332 return 0 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
333 fi |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
334 done < ${PACKAGE_MAPPING} |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
335 fi |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
336 mapped_package_name="" |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
337 return 1 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
338 } |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
339 |
|
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
|
340 print_title() { |
|
94
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
341 : 'Print the output title line for a package |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
342 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
343 Args: |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
344 _package: the package name |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
345 _repo: the repository name |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
346 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
347 Input (Globals). |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
348 title_printed: a global that determines if the title really needs |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
349 to be printed. |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
350 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
351 If it is an empty string the the title is |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
352 really printed and the variable is set to |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
353 "yes". |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
354 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
355 Output (Globals): |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
356 title_printed: set to "yes" if the title has been printed |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
357 |
|
c9fb9e920a32
Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents:
93
diff
changeset
|
358 ' |
|
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
|
359 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
|
360 |
|
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
|
361 _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
|
362 _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
|
363 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
|
364 echo "${_package} (${_repo})" |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
365 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
|
366 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
|
367 } |
|
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
|
368 |
|
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
|
369 |
|
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
|
370 alldata_flag="" |
|
61
26cf051f6c93
Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
60
diff
changeset
|
371 alldata_flag_LocalBSDPorts="" |
|
26cf051f6c93
Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
60
diff
changeset
|
372 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
|
373 short_flag="" |
|
9
6b77068e7ec8
Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents:
8
diff
changeset
|
374 verbose_flag="" |
|
6b77068e7ec8
Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents:
8
diff
changeset
|
375 |
|
81
124faa20ae80
Implemented a "-V" global option to print the program's name and version number to stdout
Franz Glasner <fzglas.hg@dom66.de>
parents:
79
diff
changeset
|
376 while getopts "VAasv" _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
|
377 case ${_opt} in |
|
81
124faa20ae80
Implemented a "-V" global option to print the program's name and version number to stdout
Franz Glasner <fzglas.hg@dom66.de>
parents:
79
diff
changeset
|
378 V) |
|
130
54de2955bfa9
Put @@VERSION@@ and @@HGREVISION@@ in single quotes
Franz Glasner <fzglas.hg@dom66.de>
parents:
128
diff
changeset
|
379 echo 'check-ports v${VERSION} (rv:@@HGREVISION@@)' |
|
81
124faa20ae80
Implemented a "-V" global option to print the program's name and version number to stdout
Franz Glasner <fzglas.hg@dom66.de>
parents:
79
diff
changeset
|
380 exit 0 |
|
124faa20ae80
Implemented a "-V" global option to print the program's name and version number to stdout
Franz Glasner <fzglas.hg@dom66.de>
parents:
79
diff
changeset
|
381 ;; |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
382 A) |
| 135 | 383 # Print for every package the status of all repositories |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
384 alldata_flag=1 |
|
61
26cf051f6c93
Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
60
diff
changeset
|
385 alldata_flag_LocalBSDPorts=1 |
|
26cf051f6c93
Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
60
diff
changeset
|
386 alldata_flag_LocalRepo=1 |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
387 ;; |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
388 a) |
| 135 | 389 # Print the data of all repos that have the package |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
390 alldata_flag=1 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
391 ;; |
|
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
|
392 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
|
393 # "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
|
394 # 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
|
395 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
|
396 ;; |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
397 v) |
| 135 | 398 # |
| 399 # Print all titles and repo of every installed package always. | |
| 400 # The output of the repo status nevertheless depends on the | |
| 401 # other flag settings. | |
| 402 # | |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
403 verbose_flag=1 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
404 ;; |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
405 \?) |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
406 exit 2 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
407 ;; |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
408 *) |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
409 echo "option handling failed" >&2 |
|
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
410 exit 2 |
| 42 | 411 ;; |
|
9
6b77068e7ec8
Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents:
8
diff
changeset
|
412 esac |
|
12
fd56d1b7d822
Use extra flag for controlling the printing of the package title
Franz Glasner <hg@dom66.de>
parents:
11
diff
changeset
|
413 done |
|
9
6b77068e7ec8
Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents:
8
diff
changeset
|
414 |
|
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
|
415 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
|
416 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
|
417 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
|
418 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
|
419 |
|
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
|
420 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
|
421 installed_data="$(pkg query '%n %v %R' $installed_packages)" |
| 1 | 422 |
|
5
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
423 get_remote_repo_versions ${LOCAL_REPO} |
|
23
242055572964
FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
22
diff
changeset
|
424 get_remote_repo_versions ${LOCALBSDPORTS_REPO} |
|
5
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
425 get_remote_repo_versions ${FREEBSD_REPO} |
|
53c3500894d2
Begin a new implementation algorithm
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
426 get_local_index_versions |
|
6
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
427 |
|
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
428 while read lfqp llabel ldescr ; do |
|
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
429 _installed_name=${lfqp%-*} |
|
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
430 _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
|
431 title_printed="" |
|
56
ad454e403e24
Rename function: has now a better name
Franz Glasner <fzglas.hg@dom66.de>
parents:
55
diff
changeset
|
432 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
|
433 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
|
434 if [ -n "${verbose_flag}" ] ; then |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
435 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
|
436 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
|
437 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
|
438 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
|
439 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
|
440 fi |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
441 get_remote_repo_data ${LOCAL_REPO} ${_installed_name} |
|
23
242055572964
FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
22
diff
changeset
|
442 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
|
443 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
|
444 _print_detail="" |
|
62
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
445 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
|
446 _print_detail=1 |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
447 fi |
|
137
dbbb04c46d97
Remove unneeded round brackets (parentheses)
Franz Glasner <fzglas.hg@dom66.de>
parents:
136
diff
changeset
|
448 if [ -n "${alldata_flag}" ]; then |
|
51
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
449 _print_detail=1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
450 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
|
451 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
|
452 # |
|
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
|
453 # 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
|
454 # 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
|
455 # |
|
51
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
456 case "${repository}" in |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
457 "${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
|
458 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
|
459 _print_detail=1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
460 fi |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
461 ;; |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
462 "${LOCAL_REPO}") |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
463 _print_detail=1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
464 ;; |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
465 "${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
|
466 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
|
467 _print_detail=1 |
|
51
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
468 fi |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
469 ;; |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
470 "${PORTS_DIRECT_INSTALLED_REPO}") |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
471 _print_detail=1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
472 ;; |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
473 *) |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
474 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
|
475 exit 1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
476 ;; |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
477 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
|
478 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
|
479 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
|
480 _print_detail=1 |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
481 fi |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
482 fi |
|
51
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
483 fi |
|
9e131a355fbe
Refactor: new -s (short-mode) implementation and new loop architecture
Franz Glasner <hg@dom66.de>
parents:
50
diff
changeset
|
484 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
|
485 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
|
486 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
|
487 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
|
488 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
|
489 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
|
490 fi |
|
61
26cf051f6c93
Rename alldata_REPO_flag to alldata_flag_REPO
Franz Glasner <fzglas.hg@dom66.de>
parents:
60
diff
changeset
|
491 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
|
492 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
|
493 fi |
|
6c8ee1ef9ef2
First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents:
61
diff
changeset
|
494 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
|
495 echo " ---> ${mapped_package_name}" |
|
63
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
496 get_immediate_index_version "${mapped_package_name}" |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
497 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
|
498 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
|
499 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
|
500 echo " INDEX : ${immediate_index_version}" |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
501 echo " FreeBSD : ${immediate_remote_repo_version_FreeBSD}" |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
502 echo " LocalBSDPorts: ${immediate_remote_repo_version_LocalBSDPorts}" |
|
0ae7697702b3
Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents:
62
diff
changeset
|
503 echo " LocalRepo : ${immediate_remote_repo_version_LocalRepo}" |
|
32
37f003c9f4e2
untabify and comments for options
Franz Glasner <hg@dom66.de>
parents:
31
diff
changeset
|
504 fi |
|
8
208545b92d43
First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents:
7
diff
changeset
|
505 fi |
|
6
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
506 done <<EOF856661111299999 |
|
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
507 ${local_index_versions} |
|
0d9a499e89e9
More tests with regard to the new algorithm
Franz Glasner <hg@dom66.de>
parents:
5
diff
changeset
|
508 EOF856661111299999 |
