Skip to content

Commit b3679e0

Browse files
committed
Update lockfile script
1 parent 1020775 commit b3679e0

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

android/scripts/update-lockfile.sh

+31-28
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ GRADLE_TASKS=(
2020
export GRADLE_OPTS
2121
export GRADLE_USER_HOME
2222

23+
cd ../gradle/
24+
2325
function cleanup {
2426
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
2628
}
2729

2830
trap cleanup EXIT
@@ -36,7 +38,7 @@ echo "### Updating checksums ###"
3638
echo ""
3739

3840
echo "Removing old components..."
39-
sed -i '/<components>/,/<\/components>/d' ../gradle/verification-metadata.xml
41+
sed -i '/<components>/,/<\/components>/d' verification-metadata.xml
4042
echo ""
4143

4244
echo "Generating new components..."
@@ -47,35 +49,27 @@ for GRADLE_TASK in "${GRADLE_TASKS[@]}"; do
4749
echo ""
4850
done
4951

50-
echo "### Updating keys ###"
51-
echo ""
52+
echo "Moving checksums to the side..."
53+
mv verification-metadata.xml verification-metadata.checksums.xml
5254

53-
echo "Temporarily enabling key servers..."
54-
sed -Ei 's,key-servers enabled="[^"]+",key-servers enabled="true",' ../gradle/verification-metadata.xml
5555

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
5856

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 ""
6159

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
7262

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"
7663

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
7973

8074
echo "Sorting keyring and removing duplicates..."
8175
# Sort and unique the keyring
@@ -86,15 +80,24 @@ echo "Sorting keyring and removing duplicates..."
8680
# `sort` orders the keys deterministically
8781
# `uniq` removes identical keys
8882
# `sed 's/NEWLINE/\n/g'` puts the newlines back
89-
< ../gradle/verification-keyring.dryrun.keys \
83+
< verification-keyring.keys \
9084
sed 's/$/NEWLINE/g' \
9185
| tr -d '\n' \
9286
| sed 's/\(-----END PGP PUBLIC KEY BLOCK-----\)/\1\n/g' \
9387
| grep "END PGP PUBLIC KEY BLOCK" \
9488
| sort \
9589
| uniq \
9690
| 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
9894

9995
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

Comments
 (0)