annotate sbin/check-ports @ 723:a97ec3f07bdb

farray.sh: REFACTOR: More flexible metadata retrieval. Using an array or alist variable name or token value (with prefix) is now supported in every function. This is possible because the value prefixes contain questin marks (?) which are not allowed in shell variable names. This again is a major precondition for recursive data structures (arrays/alists in arrays/alists).
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 05 Oct 2024 21:55:55 +0200
parents f19ae639e7ff
children b308d8e4c8ad
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
79
Franz Glasner <fzglas.hg@dom66.de>
parents: 67
diff changeset
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
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
4 version in remote repositories and the local ports index.
86
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
438
9c3b1966ba91 Extend copyright to 2024
Franz Glasner <fzglas.hg@dom66.de>
parents: 386
diff changeset
7 :Copyright: (c) 2017-2024 Franz Glasner.
86
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>
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 361
diff changeset
13 :ID: @(#)@@SIMPLEVERSIONTAG@@
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
643
4f2257ea7d0a shellcheck: disable SC2034: VERSION appears unused...
Franz Glasner <fzglas.hg@dom66.de>
parents: 438
diff changeset
17 # shellcheck disable=SC2034 # VERSION appears unused
130
54de2955bfa9 Put @@VERSION@@ and @@HGREVISION@@ in single quotes
Franz Glasner <fzglas.hg@dom66.de>
parents: 128
diff changeset
18 VERSION='@@VERSION@@'
17
089afc4908c0 Expand @@VERSION@@ with the package version also
Franz Glasner <hg@dom66.de>
parents: 16
diff changeset
19
153
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
20 USAGE='
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
21 USAGE: check-ports [options] [args...]
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
22
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
23 Options:
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
24
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
25 -V Print the program name and version number to stdout and exit
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
26
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
27 -h Print this help message to stdout and exit
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
28
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
29 -A Print for every package the status of all repositories
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
30
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
31 -a Print the data of all repos that have the package
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
32
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
33 -n Print the status of given packages in `args` in all details.
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
34 No other options are respected.
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
35
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
36 -s Print the status of all packages that need some attention
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
37
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
38 -v Print the title and repository of every installed package always
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
39
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
40 Per Default (without any option) the status of every package is
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
41 printed with respect to repositories that have the package and have
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
42 differing versions.
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
43 '
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
44
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
45 #
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
46 # Configuration directory
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
47 #
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
48 : ${CONFIGDIR:="@@ETCDIR@@"}
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
49
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
50
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
51 [ -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
52
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
53 #
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
54 # 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
55 # 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
56 #
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
57 : ${PACKAGE_MAPPING:="${CONFIGDIR}"/package-mapping.conf}
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
58
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
59 #
55
97db540472bd Doc: enhanced comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 52
diff changeset
60 # 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
61 # OPTIONS (i.e. not using the defaults) or forks of official packages with
136
8afc4eb30406 Docu: better comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
62 # other package names.
8afc4eb30406 Docu: better comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
63 # 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
64 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
65 : ${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
66
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
67 #
138
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
68 # Shared local repository with non-public packages and/or ports with
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
69 # changed OPTIONS (i.e. not using the defaults).
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
70 # Contrary to LOCAL_REPO this repository may be shared.
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
71 #
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
72 : ${SHARED_LOCAL_REPO:=SharedLocalRepo}
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
73
850ebdb132d1 Name a shared local repository: SharedLocalRepo
Franz Glasner <fzglas.hg@dom66.de>
parents: 137
diff changeset
74 #
136
8afc4eb30406 Docu: better comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
75 # (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
76 # but newer than the packages in the "FreeBSD" repository.
136
8afc4eb30406 Docu: better comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
77 # Can also contain non-FreeBSD *public* packages.
8afc4eb30406 Docu: better comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
78 # May be shared.
15
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
79 # Some sort of a fast-track repository.
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
80 #
23
242055572964 FIX: Variable naming
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 22
diff changeset
81 : ${LOCALBSDPORTS_REPO:=LocalBSDPorts}
59
4805789ebbb3 Style: WS
Franz Glasner <fzglas.hg@dom66.de>
parents: 58
diff changeset
82
15
532757223c28 Handle a "FreeBSDPorts" repository also.
Franz Glasner <hg@dom66.de>
parents: 14
diff changeset
83 #
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
84 # The official FreeBSD binary repository
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
85 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
86 : ${FREEBSD_REPO:=FreeBSD}
59
4805789ebbb3 Style: WS
Franz Glasner <fzglas.hg@dom66.de>
parents: 58
diff changeset
87
14
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
88 #
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
89 # Directly installed from ports
c0e2eb5613fe Comment on the 3 repositories handled repositories
Franz Glasner <hg@dom66.de>
parents: 12
diff changeset
90 #
1
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
91 : ${PORTS_DIRECT_INSTALLED_REPO:=unknown-repository}
7c9ddbea00c8 Work on the check script
Franz Glasner <hg@dom66.de>
parents: 0
diff changeset
92
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
93 #
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
94 # 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
95 #
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
96 : ${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
97
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
98
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
99 test_exists_local_index() {
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
100 : 'Determine whether there exists a ports directory with an index
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
101 file.
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
102
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
103 Returns:
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
104 status 0 iff the local index exists
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
105 '
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
106 pkg version -I -n DUMMY >/dev/null 2>/dev/null
8
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
107 }
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
108
208545b92d43 First working version: real useful output of packages differing from any repo
Franz Glasner <hg@dom66.de>
parents: 7
diff changeset
109
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
110 get_ports_index_directory() {
151
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
111 : 'Ask the packager configuration for the `INDEXDIR` and/or `PORTSDIR`
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
112 configuration value: either `INDEXDIR` or -- if `INDEXDIR` is empty --
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
113 `PORTSDIR` is used.
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
114
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
115 Output (stdout)
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
116 the directory where the index database file lives
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
117
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
118 '
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
119 local _dir
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
120
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
121 _dir="$(pkg config INDEXDIR)"
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
122 if [ -z "${_dir}" ]; then
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
123 _dir="$(pkg config PORTSDIR)"
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
124 fi
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
125 printf '%s' "${_dir}"
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
126 }
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
127
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
128
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
129 get_ports_index_version() {
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
130 : '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
131 local ports index.
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
132
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
133 Args:
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
134 _package: the package name to search for
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
135
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
136 Returns:
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
137 0 on success, 1 on errors or if the package is not in the local
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
138 ports index
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
139
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
140 Output (stdout):
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
141 the version number of `_package` in the local ports index
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
142
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
143 '
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
144 local _package _line _fqpn _n _lines
151
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
145 local _indexdir _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
146
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
147 _package="$1"
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
148
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
149 # _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
150 # _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
151 # immediate_index_version=${_val##*-}
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
152 # return ${_rv}
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
153
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
154 _indexdir="$(get_ports_index_directory)"
151
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
155 _indexfile="$(pkg config INDEXFILE)"
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
156
27b7454140be Determine INDEXDIR and INDEXFILE dynamically from the packager configuration via "pkg config"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
157 if [ -r "${_indexdir}/${_indexfile}" ] ; then
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
158 #
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
159 # 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
160 # "_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
161 # 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
162 #
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
163 # "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
164 # 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
165 #
348
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
166 # Use BREs because a `+' char needs to be handled as an ordinary
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
167 # character (e.g. for the "lucene++" package).
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
168 # Note that `^' at the start of an RE is not an ordinary
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
169 # character. See re_format(7).
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
170 #
9b388927b12b FIX: Use BREs with grep because is handles "+" characters in package names properly.
Franz Glasner <fzglas.hg@dom66.de>
parents: 153
diff changeset
171 _lines=$(/usr/bin/grep -G '^'"${_package}" "${_indexdir}/${_indexfile}")
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
172 while read -r _line ; do
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
173 _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
174 _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
175 if [ "${_package}" = "${_n}" ] ; then
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
176 printf '%s' "${_fqpn##*-}"
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
177 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
178 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
179 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
180 ${_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
181 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
182 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
183 return 1
63
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
184 }
0ae7697702b3 Handling of mapped packages is basically implemented.
Franz Glasner <hg@dom66.de>
parents: 62
diff changeset
185
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
186
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
187 get_mapping() {
101
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
188 : '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
189 another package.
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
190
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
191 Args:
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
192 _package: the new name of the package
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
193
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
194 Returns:
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
195 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
196
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
197 Output (stdout):
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
198 the name of the package on which `_package` is based on
101
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
199
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
200 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
201 `/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
202 Example::
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
203
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
204 #
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
205 # _package mapped_package_name
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
206 #
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
207 fmg-nextcloud-php71 nextcloud-php71
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
208 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
209
bf8f0aa3c698 Docu: get_mapping() is documented now
Franz Glasner <fzglas.hg@dom66.de>
parents: 100
diff changeset
210 '
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
211 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
212
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
213 _package="$1"
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
214
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
215 if [ -r "${PACKAGE_MAPPING}" ] ; then
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
216 while read -r _n _mapped ; do
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
217 if [ "${_n}" = "${_package}" ] ; then
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
218 printf '%s' "${_mapped}"
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
219 return 0
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
220 fi
706
45051412d0b8 check-ports: modernized somewhat: quoting and "read -r"
Franz Glasner <fzglas.hg@dom66.de>
parents: 705
diff changeset
221 done < "${PACKAGE_MAPPING}"
62
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
222 fi
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
223 return 1
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
224 }
6c8ee1ef9ef2 First parts of checks of forked and/or renamed packages
Franz Glasner <fzglas.hg@dom66.de>
parents: 61
diff changeset
225
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
226
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
227 print_title() {
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
228 : 'Print the output title line for a package
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
229
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
230 Args:
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
231 _package: the package name
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
232 _version: the package version
94
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
233 _repo: the repository name
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
234
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
235 Input (Globals).
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
236 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
237 to be printed.
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
238
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
239 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
240 really printed and the variable is set to
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
241 "yes".
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
242
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
243 Output (Globals):
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
244 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
245
c9fb9e920a32 Docu: documented many functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
246 '
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
247 local _package _version _repo
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
248
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
249 _package="$1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
250 _version="$2"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
251 _repo="$3"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
252 if [ -z "${title_printed}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
253 printf '%-36s %-17s (%s)\n' "${_package}" "${_version}" "${_repo}"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
254 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
255 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
256 }
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
257
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
258
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
259 print_detail_item() {
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
260 : 'Print a detail item to stdout.
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
261
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
262 The description `_descr` will not be printed if the label `_label`
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
263 is ``?``.
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
264
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
265 Args:
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
266 _repo: the repository name
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
267 _version: the version number to print to
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
268 _label: the label (aka comparison character) to print to
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
269 _descr: the description to print to
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
270 _indent: (optional) extra indentation number (default 0)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
271
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
272 Output (stdout):
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
273 the formatted detail line
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
274
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
275 '
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
276 local _repo _version _label _descr _indent
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
277 local _real_descr
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
278
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
279 _repo="$1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
280 _version="$2"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
281 _label="$3"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
282 _descr="$4"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
283 _indent="$5"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
284
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
285 if [ -z "${_indent}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
286 _indent="0"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
287 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
288 if [ "${_label}" = '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
289 _real_descr=''
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
290 else
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
291 _real_descr="${_descr}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
292 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
293
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
294 printf '%-*s %-15s: %-17s %s %s\n' $((_indent)) '' "${_repo}" "${_version}" "${_label}" "${_real_descr}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
295 }
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
296
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
297
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
298 check_ports() {
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
299 : 'Implementation of all command variants besides of `-n`
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
300
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
301 '
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
302 local _ipackage _iversion _irepo _mapped_package_name _dummy
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
303 local _print_detail _local_index_exists
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
304 local _index_version _index_label _index_descr
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
305 local _remote_version_FreeBSD _remote_label_FreeBSD _remote_descr_FreeBSD
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
306 local _remote_version_LocalBSDPorts _remote_label_LocalBSDPorts _remote_descr_LocalBSDPorts
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
307 local _remote_version_SharedLocalRepo _remote_label_SharedLocalRepo _remote_descr_SharedLocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
308 local _remote_version_LocalRepo _remote_label_LocalRepo _remote_descr_LocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
309
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
310 if test_exists_local_index; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
311 _local_index_exists="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
312 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
313 pkg query '%n %v %R' |
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
314 while read -r _ipackage _iversion _irepo; do
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
315 title_printed=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
316 _print_detail=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
317 if [ -n "${_local_index_exists}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
318 read -r _dummy _index_label _index_descr <<EOF_INDEX
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
319 $(pkg version -U -I -n "${_ipackage}" -v)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
320 EOF_INDEX
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
321 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
322 read -r _dummy _remote_label_FreeBSD _remote_descr_FreeBSD <<EOF_FreeBSD
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
323 $(pkg version -U -R -r "${FREEBSD_REPO}" -n "${_ipackage}" -v)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
324 EOF_FreeBSD
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
325 read -r _dummy _remote_label_LocalBSDPorts _remote_descr_LocalBSDPorts <<EOF_LocalBSDPorts
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
326 $(pkg version -U -R -r "${LOCALBSDPORTS_REPO}" -n "${_ipackage}" -v)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
327 EOF_LocalBSDPorts
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
328 read -r _remote_fpname_SharedLocalRepo _remote_label_SharedLocalRepo _remote_descr_SharedLocalRepo <<EOF_SharedLocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
329 $(pkg version -U -R -r "${SHARED_LOCAL_REPO}" -n "${_ipackage}" -v)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
330 EOF_SharedLocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
331 read -r _remote_fpname_LocalRepo _remote_label_LocalRepo _remote_descr_LocalRepo <<EOF_LocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
332 $(pkg version -U -R -r "${LOCAL_REPO}" -n "${_ipackage}" -v)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
333 EOF_LocalRepo
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
334
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
335 if [ -n "${option_verbose}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
336 print_title "${_ipackage}" "${_iversion}" "${_irepo}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
337 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
338 if get_mapping "${_ipackage}" >/dev/null; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
339 _print_detail="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
340 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
341 if [ -n "${option_alldata}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
342 _print_detail="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
343 else
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
344 if [ -n "${option_short}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
345 case "${_irepo}" in
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
346 "${FREEBSD_REPO}")
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
347 if [ -n "${_local_index_exists}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
348 if [ "${_index_label}" != '<' -a "${_index_label}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
349 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
350 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
351 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
352 if [ "${_remote_label_FreeBSD}" != '=' -o "${_remote_label_SharedLocalRepo}" != '?' -o "${_remote_label_LocalRepo}" != '?' -o "${_remote_label_LocalBSDPorts}" != '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
353 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
354 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
355 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
356 "${LOCALBSDPORTS_REPO}")
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
357 if [ -n "${_local_index_exists}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
358 if [ "${_index_label}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
359 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
360 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
361 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
362 if [ "${_remote_label_FreeBSD}" != '>' -o "${_remote_label_LocalRepo}" != '?' -o "${_remote_label_SharedLocalRepo}" != '?' -o "${_remote_label_LocalBSDPorts}" = '?' -o "${_remote_label_LocalBSDPorts}" = '<' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
363 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
364 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
365 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
366 "${SHARED_LOCAL_REPO}")
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
367 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
368 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
369 "${LOCAL_REPO}")
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
370 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
371 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
372 "${PORTS_DIRECT_INSTALLED_REPO}")
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
373 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
374 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
375 *)
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
376 echo "ERROR: unhandled repository: ${_irepo}" >&2
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
377 exit 1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
378 ;;
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
379 esac
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
380 else
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
381 if [ -n "${_local_index_exists}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
382 if [ "${_index_label}" != '?' -a "${_index_label}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
383 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
384 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
385 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
386 if [ "${_remote_label_FreeBSD}" != '?' -a "${_remote_label_FreeBSD}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
387 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
388 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
389 if [ "${_remote_label_LocalBSDPorts}" != '?' -a "${_remote_label_LocalBSDPorts}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
390 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
391 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
392 if [ "${_remote_label_SharedLocalRepo}" != '?' -a "${_remote_label_SharedLocalRepo}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
393 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
394 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
395 if [ "${_remote_label_LocalRepo}" != '?' -a "${_remote_label_LocalRepo}" != '=' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
396 _print_detail=1
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
397 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
398 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
399 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
400 if [ -n "${_print_detail}" ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
401 print_title "${_ipackage}" "${_iversion}" "${_irepo}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
402 if [ -n "${_local_index_exists}" ]; then
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
403 _index_version="$(get_ports_index_version "${_ipackage}")"
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
404 print_detail_item "INDEX" "${_index_version}" "${_index_label}" "${_index_descr}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
405 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
406 if [ -n "${option_alldata_FreeBSD}" -o "${_remote_label_FreeBSD}" != '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
407 _remote_version_FreeBSD="$(pkg rquery -U -r "${FREEBSD_REPO}" '%v' "${_ipackage}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
408 print_detail_item "${FREEBSD_REPO}" "${_remote_version_FreeBSD}" "${_remote_label_FreeBSD}" "${_remote_descr_FreeBSD}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
409 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
410 if [ -n "${option_alldata_LocalBSDPorts}" -o "${_remote_label_LocalBSDPorts}" != '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
411 _remote_version_LocalBSDPorts="$(pkg rquery -U -r "${LOCALBSDPORTS_REPO}" '%v' "${_ipackage}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
412 print_detail_item "${LOCALBSDPORTS_REPO}" "${_remote_version_LocalBSDPorts}" "${_remote_label_LocalBSDPorts}" "${_remote_descr_LocalBSDPorts}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
413 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
414 if [ -n "${option_alldata_SharedLocalRepo}" -o "${_remote_label_SharedLocalRepo}" != '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
415 _remote_version_SharedLocalRepo="$(pkg rquery -U -r "${SHARED_LOCAL_REPO}" '%v' "${_ipackage}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
416 print_detail_item "${SHARED_LOCAL_REPO}" "${_remote_version_SharedLocalRepo}" "${_remote_label_SharedLocalRepo}" "${_remote_descr_SharedLocalRepo}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
417 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
418 if [ -n "${option_alldata_LocalRepo}" -o "${_remote_label_LocalRepo}" != '?' ]; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
419 _remote_version_LocalRepo="$(pkg rquery -U -r "${LOCAL_REPO}" '%v' "${_ipackage}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
420 print_detail_item "${LOCAL_REPO}" "${_remote_version_LocalRepo}" "${_remote_label_LocalRepo}" "${_remote_descr_LocalRepo}"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
421 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
422 _mapped_package_name="$(get_mapping "${_ipackage}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
423 if [ -n "${_mapped_package_name}" ] ; then
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
424 printf '%18s %s %s (%s)\n' "--------------->" "${_mapped_package_name}" "$(pkg rquery -U '%v' "${_mapped_package_name}")" "$(pkg rquery -U '%R' "${_mapped_package_name}")"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
425 if [ -n "${_local_index_exists}" ]; then
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
426 print_detail_item "INDEX" "$(get_ports_index_version "${_mapped_package_name}")" "" ""
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
427 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
428 print_detail_item "${FREEBSD_REPO}" "$(pkg rquery -U -r "${FREEBSD_REPO}" '%v' "${_mapped_package_name}")" "" ""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
429 print_detail_item "${LOCALBSDPORTS_REPO}" "$(pkg rquery -U -r "${LOCALBSDPORTS_REPO}" '%v' "${_mapped_package_name}")" "" ""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
430 print_detail_item "${SHARED_LOCAL_REPO}" "$(pkg rquery -U -r "${SHARED_LOCAL_REPO}" '%v' "${_mapped_package_name}")" "" ""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
431 print_detail_item "${LOCAL_REPO}" "$(pkg rquery -U -r "${LOCAL_REPO}" '%v' "${_mapped_package_name}")" "" ""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
432 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
433 fi
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
434 done
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
435 }
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
436
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
437
153
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
438 check_given_packages() {
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
439 : 'Check the status of all given packages in the most detail possible
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
440
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
441 Args:
708
f19ae639e7ff check-ports: FIX: Typo in docs
Franz Glasner <fzglas.hg@dom66.de>
parents: 706
diff changeset
442 $@: the name of packages to handle to
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
443
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
444 '
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
445 local _package _version _label _repo _descr _dummy
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
446 local _local_index_exists _mapped_package_name
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
447
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
448 if test_exists_local_index; then
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
449 _local_index_exists="1"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
450 fi
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
451
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
452 while [ $# -gt 0 ]; do
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
453 _package="$1"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
454 shift
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
455 read -r _version _repo <<EOF_INSTALLED
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
456 $(pkg query '%v %R' "${_package}")
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
457 EOF_INSTALLED
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
458 if [ -n "${_version}" ]; then
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
459 title_printed=""
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
460 print_title "${_package}" "${_version}" "${_repo}"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
461 if [ -n "${_local_index_exists}" ]; then
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
462 read -r _dummy _label _descr <<EOF_INDEX
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
463 $(pkg version -U -I -n "${_package}" -v)
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
464 EOF_INDEX
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
465 _version="$(get_ports_index_version "${_package}")"
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
466 print_detail_item "INDEX" "${_version}" "${_label}" "${_descr}"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
467 fi
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
468 for _repo in "${FREEBSD_REPO}" "${LOCALBSDPORTS_REPO}" "${SHARED_LOCAL_REPO}" "${LOCAL_REPO}"; do
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
469 read -r _dummy _label _descr <<EOF_REPO
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
470 $(pkg version -U -R -r "${_repo}" -n "${_package}" -v)
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
471 EOF_REPO
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
472 _version="$(pkg rquery -U -r "${_repo}" '%v' "${_package}")"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
473 print_detail_item "${_repo}" "${_version}" "${_label}" "${_descr}"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
474 done
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
475 _mapped_package_name="$(get_mapping "${_ipackage}")"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
476 if [ -n "${_mapped_package_name}" ] ; then
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
477 printf '%18s %s %s (%s)\n' "--------------->" "${_mapped_package_name}" "$(pkg rquery -U '%v' "${_mapped_package_name}")" "$(pkg rquery -U '%R' "${_mapped_package_name}")"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
478 if [ -n "${_local_index_exists}" ]; then
152
29e708b524e1 Renamed some ports index related functions
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
479 print_detail_item "INDEX" "$(get_ports_index_version "${_mapped_package_name}")" "" ""
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
480 fi
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
481 for _repo in "${FREEBSD_REPO}" "${LOCALBSDPORTS_REPO}" "${SHARED_LOCAL_REPO}" "${LOCAL_REPO}"; do
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
482 print_detail_item "${_repo}" "$(pkg rquery -U -r "${_repo}" '%v' "${_mapped_package_name}")" "" ""
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
483 done
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
484 fi
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
485 fi
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
486 done
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
487 }
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
488
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
489
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
490 option_alldata=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
491 option_alldata_FreeBSD=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
492 option_alldata_LocalBSDPorts=""
705
7cb17eaac812 check-ports: FIX: Typo in variable name: "opeion_alldata_..." -> "option_alldata_..."
Franz Glasner <fzglas.hg@dom66.de>
parents: 643
diff changeset
493 option_alldata_SharedLocalRepo=""
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
494 option_alldata_LocalRepo=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
495 option_short=""
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
496 option_verbose=""
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
497 option_packages=""
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
498
153
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
499 while getopts "VhAansv" _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
500 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
501 V)
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 361
diff changeset
502 printf 'check-ports %s\n' '@@SIMPLEVERSIONSTR@@'
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
503 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
504 ;;
153
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
505 h)
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
506 echo "${USAGE}"
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
507 exit 0
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
508 ;;
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
509 A)
135
8152028661c2 Comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 131
diff changeset
510 # Print for every package the status of all repositories
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
511 option_alldata="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
512 option_alldata_FreeBSD="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
513 option_alldata_LocalBSDPorts="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
514 option_alldata_SharedLocalRepo="1"
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
515 option_alldata_LocalRepo="1"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
516 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
517 a)
135
8152028661c2 Comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 131
diff changeset
518 # Print the data of all repos that have the package
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
519 option_alldata="1"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
520 ;;
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
521 n)
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
522 #
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
523 # Print status of given packages in all details.
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
524 # No other options are respected.
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
525 #
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
526 option_packages="1"
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
527 ;;
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
528 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
529 # "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
530 # report if only the index is newer
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
531 option_short="1"
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
532 ;;
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
533 v)
135
8152028661c2 Comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 131
diff changeset
534 #
8152028661c2 Comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 131
diff changeset
535 # Print all titles and repo of every installed package always.
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
536 # The output of the other repo status nevertheless depends on the
135
8152028661c2 Comments
Franz Glasner <fzglas.hg@dom66.de>
parents: 131
diff changeset
537 # other flag settings.
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
538 #
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
539 option_verbose="1"
32
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
540 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
541 \?)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
542 exit 2
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
543 ;;
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
544 *)
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
545 echo "option handling failed" >&2
37f003c9f4e2 untabify and comments for options
Franz Glasner <hg@dom66.de>
parents: 31
diff changeset
546 exit 2
42
ace5d471abbd Code style
Franz Glasner <hg@dom66.de>
parents: 34
diff changeset
547 ;;
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
548 esac
12
fd56d1b7d822 Use extra flag for controlling the printing of the package title
Franz Glasner <hg@dom66.de>
parents: 11
diff changeset
549 done
9
6b77068e7ec8 Introduced option handling with getopts: implemented a "v" option (verbose)
Franz Glasner <hg@dom66.de>
parents: 8
diff changeset
550
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
551 #
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
552 # Reset the Shell's option handling system to prepare for handling
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
553 # command-local options.
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
554 #
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
555 shift $((OPTIND-1))
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
556 OPTIND=1
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
557
140
17b2f4fa9c1b - Refactor: check-ports now deals with missing local index files
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
558 if [ -n "${option_short}" -a -n "${option_alldata}" ]; then
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
559 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
560 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
561 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
562
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
563 if [ -n "${option_packages}" ]; then
153
59a334dc9b53 Implement a usage message with the "-h" option
Franz Glasner <fzglas.hg@dom66.de>
parents: 152
diff changeset
564 check_given_packages "$@"
150
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
565 else
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
566 check_ports
937c96ffe358 Implemented the "-n" option to check only given packages but in the most detail possible
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
567 fi