1 |
From: Hadrien Lacour <hadrien.lacour@××××××.net> |
2 |
|
3 |
--- |
4 |
bin/revdep-rebuild.sh | 28 +++++++++++++++++++--------- |
5 |
1 file changed, 19 insertions(+), 9 deletions(-) |
6 |
|
7 |
diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh |
8 |
index 633701e..5fecf97 100755 |
9 |
--- a/bin/revdep-rebuild.sh |
10 |
+++ b/bin/revdep-rebuild.sh |
11 |
@@ -235,9 +235,19 @@ countdown() { |
12 |
# Replace whitespace with linebreaks, normalize repeated '/' chars, and sort -u |
13 |
# (If any libs have whitespace in their filenames, someone needs punishment.) |
14 |
clean_var() { |
15 |
- gawk 'BEGIN {RS="[[:space:]]"} |
16 |
- /-\*/ {exit} |
17 |
- /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}' | sort -u |
18 |
+ awk ' |
19 |
+ BEGIN {FS = "[[:space:]]"} |
20 |
+ |
21 |
+ { |
22 |
+ for(i = 1; i <= NF; ++i) { |
23 |
+ if($i ~ /-\*/) |
24 |
+ exit |
25 |
+ else if($i){ |
26 |
+ gsub(/\/\/+/, "/", $i) |
27 |
+ print $i |
28 |
+ } |
29 |
+ } |
30 |
+ }' | sort -u |
31 |
} |
32 |
## |
33 |
# Exit and optionally output to sterr |
34 |
@@ -805,8 +815,8 @@ main_checks() { |
35 |
# Look for symbol not defined errors |
36 |
if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" | |
37 |
grep -q -E 'symbol .* not defined'; then |
38 |
- message=$(gawk '/symbol .* not defined/ {NF--; print $0}' <<< "$ldd_output") |
39 |
- broken_lib=$(gawk '/symbol .* not defined/ {print $NF}' <<< "$ldd_output" | \ |
40 |
+ message=$(awk '/symbol .* not defined/ {ORS = FS; for(i = 1; i < NF; ++i) print $i; printf "\n"}' <<< "$ldd_output") |
41 |
+ broken_lib=$(awk '/symbol .* not defined/ {print $NF}' <<< "$ldd_output" | \ |
42 |
sed 's/[()]//g') |
43 |
echo "obj $broken_lib" >> "$BROKEN_FILE" |
44 |
echo_v " broken $broken_lib ($message)" |
45 |
@@ -820,7 +830,7 @@ main_checks() { |
46 |
*) |
47 |
if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" | |
48 |
grep -q -F 'undefined symbol:'; then |
49 |
- message=$(gawk '/undefined symbol:/ {print $3}' <<< "$ldd_output") |
50 |
+ message=$(awk '/undefined symbol:/ {print $3}' <<< "$ldd_output") |
51 |
message="${message//$'\n'/ }" |
52 |
echo "obj $target_file" >> "$BROKEN_FILE" |
53 |
echo_v " broken $target_file (undefined symbols(s): $message)" |
54 |
@@ -835,7 +845,7 @@ main_checks() { |
55 |
la_broken="" |
56 |
la_lib="" |
57 |
for depend in $( |
58 |
- gawk -F"[=']" '/^dependency_libs/{ |
59 |
+ awk -F"[=']" '/^dependency_libs/{ |
60 |
print $3 |
61 |
}' "$target_file" |
62 |
); do |
63 |
@@ -876,7 +886,7 @@ main_checks() { |
64 |
done < <( |
65 |
# Regexify LD_LIBRARY_MASK. Exclude it from the search. |
66 |
LD_LIBRARY_MASK="${LD_LIBRARY_MASK//$'\n'/|}" |
67 |
- gawk -v ldmask="(${LD_LIBRARY_MASK//./\\\\.})" ' |
68 |
+ awk -v ldmask="(${LD_LIBRARY_MASK//./\\\\.})" ' |
69 |
/no version information available/ && $0 !~ ldmask { |
70 |
gsub(/[()]/, "", $NF) |
71 |
if (seen[$NF]++) next |
72 |
@@ -1068,7 +1078,7 @@ show_unowned_files() { |
73 |
ewarn "The broken files are:" |
74 |
while read filename junk; do |
75 |
[[ $junk = *none* ]] && ewarn " $filename" |
76 |
- done < "$OWNERS_FILE" | gawk '!s[$0]++' # (omit dupes) |
77 |
+ done < "$OWNERS_FILE" | awk '!s[$0]++' # (omit dupes) |
78 |
fi |
79 |
} |
80 |
|
81 |
-- |
82 |
2.13.6 |