Skip to content

Commit 4804003

Browse files
committed
please.sh upgrade: handle git-lfs, too
The excuse is Git LFS v2.2.0, which just came out. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 32a7be4 commit 4804003

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

please.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2321,6 +2321,51 @@ upgrade () { # <package>
23212321
finalize release-notes &&
23222322
tag_git
23232323
;;
2324+
lfs|git-lfs)
2325+
repo=git-lfs/git-lfs
2326+
url=https://api.github.com/repos/$repo/releases/latest
2327+
release="$(curl --netrc -s $url)"
2328+
test -n "$release" ||
2329+
die "Could not determine the latest version of %s\n" "$package"
2330+
version="$(echo "$release" |
2331+
sed -n 's/^ "tag_name": "v\(.*\)",\?$/\1/p')"
2332+
test -n "$version" ||
2333+
die "Could not determine version of %s\n" "$package"
2334+
needle1='^ "body": ".* SHA-256 hashes.*git-lfs-windows'
2335+
needle2="$version\\.zip\\**\\\\r\\\\n\\([0-9a-f]*\\).*"
2336+
sha256_32="$(echo "$release" |
2337+
sed -n "s/$needle1-386-$needle2/\1/p")"
2338+
test 64 = $(echo -n "$sha256_32" | wc -c) ||
2339+
die "Could not determine SHA-256 of 32-bit %s\n" "$package"
2340+
sha256_64="$(echo "$release" |
2341+
sed -n "s/$needle1-amd64-$needle2/\1/p")"
2342+
test 64 = $(echo -n "$sha256_64" | wc -c) ||
2343+
die "Could not determine SHA-256 of 64-bit %s\n" "$package"
2344+
(cd "$sdk64/$pkgpath" &&
2345+
url=https://github.com/$repo/releases/download/v$version/ &&
2346+
zip32="git-lfs-windows-386-$version.zip" &&
2347+
zip64="git-lfs-windows-amd64-$version.zip" &&
2348+
curl -LO $url$zip32 &&
2349+
curl -LO $url$zip64 &&
2350+
printf "%s *%s\n%s *%s\n" \
2351+
"$sha256_32" "$zip32" "$sha256_64" "$zip64" |
2352+
sha256sum -c - &&
2353+
srcdir32="$(unzip -l $zip32 |
2354+
sed -n 's/^.\{28\} *\(.*\)\/\?git-lfs\.exe/\1/p' |
2355+
sed 's/^$/./')" &&
2356+
srcdir64="$(unzip -l $zip64 |
2357+
sed -n 's/^.\{28\} *\(.*\)\/\?git-lfs\.exe/\1/p' |
2358+
sed 's/^$/./')" &&
2359+
s1='s/\(folder=\)[^\n]*/\1' &&
2360+
s2='s/\(sha256sum=\)[0-9a-f]*/\1'
2361+
sed -i -e "s/^\\(pkgver=\\).*/\\1$version/" \
2362+
-e "/^i686)/{N;N;N;$s1$dir32/;$s2$sha256_32/}" \
2363+
-e "/^x86_64)/{N;N;N;$s1$dir64/;$s2$sha256_64/}" \
2364+
PKGBUILD &&
2365+
git commit -s -m "Upgrade $package to $version" PKGBUILD) &&
2366+
url=https://github.com/$repo/releases/tag/v$version &&
2367+
relnotes_feature='Comes with [Git LFS v'$version']('"$url"').'
2368+
;;
23242369
*)
23252370
die "Unhandled package: %s\n" "$package"
23262371
;;

0 commit comments

Comments
 (0)