annotate Scripts/bulk.sh @ 1252:b811a6479213

gnu/libidn2: upgrade to 2.3.2
author David Demelier <markand@malikania.fr>
date Mon, 01 Nov 2021 12:48:34 +0100
parents 297b5eef115e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1115
297b5eef115e vanilla: change shebangs to /bin/sh
David Demelier <markand@malikania.fr>
parents: 1101
diff changeset
1 #!/bin/sh
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # bulk.sh -- basic bulk build script
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # Permission to use, copy, modify, and/or distribute this software for any
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # purpose with or without fee is hereby granted, provided that the above
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # copyright notice and this permission notice appear in all copies.
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
20 for applet in $(busybox --list); do
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
21 alias $applet="busybox $applet"
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
22 done
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 TOP=$(realpath $(dirname $0)/../)
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 PROGNAME=$(basename $0)
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
26 TMPDIR=/tmp/vanilla-bulk
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
28 # Options.
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 force=0
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 missing=0
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 #
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
33 # clean
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
34 #
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
35 # Remove temporary files.
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
36 #
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
37 clean()
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
38 {
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
39 rm -f $TMPDIR/list
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
40 }
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
41
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
42 #
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 # build
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 #
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
45 # Build a package if not installed unless `force' (-f) has been given. Then
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
46 # force its reinstallation.
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 build()
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 {(
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
50 local name=$(basename $1)
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
1034
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
52 # TODO: dependencies here.
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
53 echo -n "building $name: "
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
54
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 if [ $force -eq 1 ] || ! vpk info $name > /dev/null 2>&1; then
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 cd $TOP/$pkg
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
58 if vpk build > $TMPDIR/fail.$name 2>&1; then
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 echo "ok"
1034
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
60 vpk add -qr /tmp/vpk/$name*pkg.txz
1061
52b36e54f1b7 vanilla: add some colors in scripts
David Demelier <markand@malikania.fr>
parents: 1034
diff changeset
61 rm -f $TMPDIR/fail.$name
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 else
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 echo "failed"
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 return 1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 fi
1034
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
66 else
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
67 echo "not needed"
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 fi
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 )}
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 # build_missing
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 # Rebuild a package that is installed but not available in /tmp/vpk.
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 #
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 build_missing()
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 {
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
78 local name=$(basename $1)
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
79 local rebuild=0
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 # Build if not installed at all.
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 if ! vpk info $name > /dev/null 2>&1; then
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 rebuild=1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 else
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
85 local version=$(vpk info -m version $name 2> /dev/null)
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
86 local revision=$(vpk info -m revision $name 2> /dev/null)
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
87 local filename="$name#$version-$revision-pkg.txz"
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 if [ ! -f /tmp/vpk/$filename ]; then
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 rebuild=1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 fi
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 fi
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 if [ $rebuild -eq 1 ]; then
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 build $1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 fi
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 }
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 usage()
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 {
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 echo "usage: bulk.sh [-fm] [packages...]"
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 exit 1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 }
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
104
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 while getopts "fm" arg; do
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 case $arg in
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 f)
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 force=1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 ;;
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 m)
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 missing=1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 force=1
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 ;;
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 *)
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 usage
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 ;;
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 esac
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 done
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 shift $((OPTIND - 1))
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
122 trap "clean; exit 1" INT QUIT TERM
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
123 rm -rf $TMPDIR
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
124 mkdir -p $TMPDIR
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
125
1093
0502aa76ec98 vanilla: update list.sh/bulk.sh scripts
David Demelier <markand@malikania.fr>
parents: 1061
diff changeset
126 $TOP/Scripts/list.sh "$@" > $TMPDIR/list
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
127
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
128 if [ ! -s $TMPDIR/list ]; then
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
129 echo "abort: no packages to build" 1>&2
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
130 exit 1
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
131 fi
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
132
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
133 total=$(wc -l $TMPDIR/list | awk '{ print $1 }')
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
134 current=1
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
135
1034
4b7330e49c3f vanilla: update bulk/list scripts
David Demelier <markand@malikania.fr>
parents: 1025
diff changeset
136 cat $TMPDIR/list | while read -r pkg; do
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
137 echo -n "($current/$total) "
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
138
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 if [ $missing -eq 1 ]; then
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 build_missing $pkg
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 else
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 build $pkg
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 fi
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
144
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
145 current=$((current + 1))
781
ca249bc7e3a7 scripts: add basic bulk.sh
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 done
1025
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
147
21a87230c8a1 vanilla: update bulk.sh
David Demelier <markand@malikania.fr>
parents: 1019
diff changeset
148 clean