@@ -20,9 +20,11 @@ GRADLE_TASKS=(
20
20
export GRADLE_OPTS
21
21
export GRADLE_USER_HOME
22
22
23
+ cd ../gradle/
24
+
23
25
function cleanup {
24
26
echo " Cleaning up temp dirs..."
25
- rm -rf -- " $GRADLE_USER_HOME " " $TEMP_GRADLE_PROJECT_CACHE_DIR " ../gradle/ verification-metadata.dryrun.xml ../gradle/verification- keyring.dryrun.keys ../gradle/verification-keyring.dryrun .gpg
27
+ rm -rf -- " $GRADLE_USER_HOME " " $TEMP_GRADLE_PROJECT_CACHE_DIR " verification-keyring.gpg
26
28
}
27
29
28
30
trap cleanup EXIT
@@ -36,7 +38,7 @@ echo "### Updating checksums ###"
36
38
echo " "
37
39
38
40
echo " Removing old components..."
39
- sed -i ' /<components>/,/<\/components>/d' ../gradle/ verification-metadata.xml
41
+ sed -i ' /<components>/,/<\/components>/d' verification-metadata.xml
40
42
echo " "
41
43
42
44
echo " Generating new components..."
@@ -47,35 +49,27 @@ for GRADLE_TASK in "${GRADLE_TASKS[@]}"; do
47
49
echo " "
48
50
done
49
51
50
- echo " ### Updating keys ### "
51
- echo " "
52
+ echo " Moving checksums to the side... "
53
+ mv verification-metadata.xml verification-metadata.checksums.xml
52
54
53
- echo " Temporarily enabling key servers..."
54
- sed -Ei ' s,key-servers enabled="[^"]+",key-servers enabled="true",' ../gradle/verification-metadata.xml
55
55
56
- echo " Generating new trusted keys..."
57
- ../gradlew -q -p .. --project-cache-dir " $TEMP_GRADLE_PROJECT_CACHE_DIR " -M pgp,sha256 " ${GRADLE_TASKS[@]} " --export-keys --dry-run
58
56
59
- # Move keys from dry run file to existing file.
60
- # This part is taken from: https://gitlab.com/fdroid/fdroidclient/-/blob/master/gradle/update-verification-metadata.sh
57
+ echo " ### Updating keys metadata ### "
58
+ echo " "
61
59
62
- # Extract the middle of the new file due to: https://github.com/gradle/gradle/issues/18569
63
- grep -B 10000 " <trusted-keys>" ../gradle/verification-metadata.dryrun.xml > " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.head"
64
- grep -A 10000 " </trusted-keys>" ../gradle/verification-metadata.dryrun.xml > " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.tail"
65
- numTopLines=" $( < " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.head" wc -l) "
66
- numTopLinesPlus1=" $(( numTopLines + 1 )) "
67
- numBottomLines=" $( < " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.tail" wc -l) "
68
- numLines=" $( < ../gradle/verification-metadata.dryrun.xml wc -l) "
69
- numMiddleLines=" $(( numLines - numTopLines - numBottomLines)) "
70
- # Remove 'version=' due to: https://github.com/gradle/gradle/issues/20192
71
- < ../gradle/verification-metadata.dryrun.xml tail -n " +$numTopLinesPlus1 " | head -n " $numMiddleLines " | sed ' s/ version="[^"]*"//' > " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.middle"
60
+ echo " Moving keys to be active metadata file"
61
+ mv verification-metadata.keys.xml verification-metadata.xml
72
62
73
- # Extract the top and bottom of the old file
74
- grep -B 10000 " <trusted-keys>" ../gradle/verification-metadata.xml > " $TEMP_GRADLE_PROJECT_CACHE_DIR /old.head"
75
- grep -A 10000 " </trusted-keys>" ../gradle/verification-metadata.xml > " $TEMP_GRADLE_PROJECT_CACHE_DIR /old.tail"
76
63
77
- # Update verification metadata file
78
- cat " $TEMP_GRADLE_PROJECT_CACHE_DIR /old.head" " $TEMP_GRADLE_PROJECT_CACHE_DIR /new.middle" " $TEMP_GRADLE_PROJECT_CACHE_DIR /old.tail" > ../gradle/verification-metadata.xml
64
+ echo " Temporarily enabling key servers..."
65
+ sed -Ei ' s,key-servers enabled="[^"]+",key-servers enabled="true",' verification-metadata.xml
66
+
67
+ echo " Removing old components..."
68
+ sed -i ' /<components>/,/<\/components>/d' verification-metadata.xml
69
+ echo " "
70
+
71
+ echo " Generating new trusted keys..."
72
+ ../gradlew -q -p .. --project-cache-dir " $TEMP_GRADLE_PROJECT_CACHE_DIR " -M pgp,sha256 " ${GRADLE_TASKS[@]} " --export-keys
79
73
80
74
echo " Sorting keyring and removing duplicates..."
81
75
# Sort and unique the keyring
@@ -86,15 +80,24 @@ echo "Sorting keyring and removing duplicates..."
86
80
# `sort` orders the keys deterministically
87
81
# `uniq` removes identical keys
88
82
# `sed 's/NEWLINE/\n/g'` puts the newlines back
89
- < ../gradle/ verification-keyring.dryrun .keys \
83
+ < verification-keyring.keys \
90
84
sed ' s/$/NEWLINE/g' \
91
85
| tr -d ' \n' \
92
86
| sed ' s/\(-----END PGP PUBLIC KEY BLOCK-----\)/\1\n/g' \
93
87
| grep " END PGP PUBLIC KEY BLOCK" \
94
88
| sort \
95
89
| uniq \
96
90
| sed ' s/NEWLINE/\n/g' \
97
- > ../gradle/verification-keyring.keys
91
+ > verification-keyring.new.keys
92
+
93
+ mv -f verification-keyring.new.keys verification-keyring.keys
98
94
99
95
echo " Disabling key servers..."
100
- sed -Ei ' s,key-servers enabled="[^"]+",key-servers enabled="false",' ../gradle/verification-metadata.xml
96
+ sed -Ezi ' s,key-servers,key-servers enabled="false",' verification-metadata.xml
97
+
98
+ echo " Moving back keys verification metadata"
99
+ mv verification-metadata.xml verification-metadata.keys.xml
100
+
101
+ echo " "
102
+ echo " Moving checksums to be active metadata file"
103
+ mv verification-metadata.checksums.xml verification-metadata.xml
0 commit comments