annotate Scripts/lint-deps.sh @ 684:603e9e10a8f4

qt/qtspeech: initial import, closes #1522
author David Demelier <markand@malikania.fr>
date Wed, 31 Jul 2019 21:10:00 +0200
parents 9e199f8590e3
children aa3c1de1780a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
659
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #!/bin/sh
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # lint-deps.sh -- ensure that dependencies listed in PKGDEPENDS exist
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 #
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # Permission to use, copy, modify, and/or distribute this software for any
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # purpose with or without fee is hereby granted, provided that the above
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # copyright notice and this permission notice appear in all copies.
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 #
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 #
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 alias basename="busybox basename"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 alias dirname="busybox dirname"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 alias echo="busybox echo"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 alias find="busybox find"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 alias grep="busybox grep"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 alias realpath="busybox realpath"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 TOP=$(realpath $(dirname $0)/../)
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 PROGNAME=$(basename $0)
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 usage()
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 {
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 echo "usage: $PROGNAME [category/package]" 1>&2
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 exit 1
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 }
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 scriptfile()
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 {
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 echo $1/$(basename $1).sh
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 }
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 list()
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 {
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 if [ $# -eq 0 ]; then
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 find $TOP -mindepth 2 -maxdepth 2 -type d | grep -v '\.hg'
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 else
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 file=$(scriptfile $1)
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 if [ ! -f $file ]; then
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 echo "abort: invalid package specified '$1'" 1>&2
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 exit 1
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 fi
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 echo $1
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 fi
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 }
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 check()
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 {
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 file=$(scriptfile $1)
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 failed=0
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
61
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 echo -n "checking dependencies for $1: "
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 # Reset PKGDEPENDS in case script is broken.
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 PKGDEPENDS=""
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 . $file
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 for d in $PKGDEPENDS; do
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 file=$TOP/$(scriptfile ${d%:*})
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 if [ ! -f $file ]; then
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 # Only print "error" once.
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 if [ $failed -eq 0 ]; then
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 failed=1
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 echo "error"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 fi
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 echo "missing ${d%:*}" 1>&2
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 fi
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 done
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 if [ $failed -eq 0 ]; then
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 echo "ok"
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 fi
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 }
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 process()
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 {
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 list $@ | while read pkg; do
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 check $pkg
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 done
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 }
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
9e199f8590e3 scripts: add lint-deps.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 process "$@"