Skip to content

Commit 0afbb05

Browse files
committed
please.sh upgrade: handle msys2-runtime, too
Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 0877f5d commit 0afbb05

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

please.sh

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2366,6 +2366,99 @@ upgrade () { # <package>
23662366
url=https://github.com/$repo/releases/tag/v$version &&
23672367
relnotes_feature='Comes with [Git LFS v'$version']('"$url"').'
23682368
;;
2369+
msys2-runtime)
2370+
(cd "$sdk64/usr/src/MSYS2-packages/msys2-runtime" &&
2371+
if test ! -d src/msys2-runtime
2372+
then
2373+
MSYSTEM=msys PATH="$sdk64/usr/bin:$PATH" \
2374+
"$sdk64"/git-cmd.exe --command=usr\\bin\\sh.exe -l -c \
2375+
'makepkg-mingw --nobuild'
2376+
fi ||
2377+
die "Could not initialize worktree for '%s\n" "$package"
2378+
2379+
cd src/msys2-runtime ||
2380+
die "Invalid worktree for '%s'\n" "$package"
2381+
2382+
require_remote cygwin \
2383+
git://sourceware.org/git/newlib-cygwin.git &&
2384+
git fetch --tags cygwin &&
2385+
require_remote git-for-windows \
2386+
https://github.com/git-for-windows/msys2-runtime ||
2387+
die "Could not connect remotes for '%s'\n" "$package"
2388+
2389+
tag=$(git for-each-ref --sort=-taggerdate --count=1 \
2390+
--format='%(refname)' refs/tags/cygwin-\*-release) &&
2391+
test -n "$tag" ||
2392+
die "Could not determine latest tag of '%s'\n" "$package"
2393+
2394+
version="$(echo "$tag" | sed -ne 'y/_/./' -e \
2395+
's|^refs/tags/cygwin-\([1-9][.0-9]*\)-release$|\1|p')" &&
2396+
test -n "$version" ||
2397+
die "Invalid version '%s' for '%s'\n" "$version" "$package"
2398+
2399+
# rebase if necessary
2400+
if test 0 -lt $(git rev-list --count \
2401+
git-for-windows/master..$tag)
2402+
then
2403+
require_push_url git-for-windows &&
2404+
git reset --hard &&
2405+
git checkout git-for-windows/master &&
2406+
GIT_EDITOR=true \
2407+
"$sdk64"/usr/src/build-extra/shears.sh \
2408+
--merging --onto "$tag" merging-rebase &&
2409+
git push git-for-windows HEAD:master ||
2410+
die "Could not rebase '%s' to '%s'\n" "$package" "$tag"
2411+
fi
2412+
2413+
msys2_runtime_mtime=$(git log -1 --format=%at \
2414+
git-for-windows/master --) &&
2415+
msys2_package_mtime=$(git -C ../.. log -1 --format=%at -- .) &&
2416+
test $msys2_runtime_mtime -gt $msys2_package_mtime ||
2417+
die "Package '%s' already up-to-date\n\t%s: %s\n\t%s: %s\n" \
2418+
"$package" \
2419+
"Most recent source code update" \
2420+
"$(date --date="@$msys2_runtime_mtime")" \
2421+
"Most recent package update" \
2422+
"$(date --date="@$msys2_package_mtime")"
2423+
2424+
cygwin_url="$(curl -s https://cygwin.com/ |
2425+
sed -n '/The most recent version of the Cygwin DLL is/{
2426+
N;s/.*<a href="\([^"]*\)">'"$version"'<\/a>.*/\1/p
2427+
}')" &&
2428+
test -n "$cygwin_url" ||
2429+
die "Could not retrieve Cygwin mail about v%s\n" "$version"
2430+
2431+
git reset --hard &&
2432+
git checkout git-for-windows/master &&
2433+
commit_url=https://github.com/git-for-windows/msys2-runtime &&
2434+
commit_url=$commit_url/commit/$(git rev-parse HEAD) &&
2435+
cd ../.. &&
2436+
if test "$version" = "$(sed -n 's/^pkgver=//p' <PKGBUILD)"
2437+
then
2438+
pkgrel=$(($(sed -n 's/^pkgrel=//p' <PKGBUILD)+1)) &&
2439+
printf 'Comes with %s%s [%s](%s).' \
2440+
"[patch level $pkgrel]($commit_url) " \
2441+
'MSYS2 runtime (Git for Windows flavor) based on' \
2442+
"Cygwin $version" "$cygwin_url" >../.git/relnotes &&
2443+
sed -i "s/^\\(pkgrel=\\).*/\\1$pkgrel/" PKGBUILD
2444+
else
2445+
printf 'Comes with %s [%s](%s).' \
2446+
'MSYS2 runtime (Git for Windows flavor) based on' \
2447+
"Cygwin $version" "$cygwin_url" >../.git/relnotes &&
2448+
sed -i -e "s/^\\(pkgver=\\).*/\\1$version/" \
2449+
-e "s/^\\(pkgrel=\\).*/\\11/" PKGBUILD
2450+
fi &&
2451+
git commit -s -m "$package: update to v$version" PKGBUILD &&
2452+
MSYSTEM=msys PATH="$sdk64/usr/bin:$PATH" \
2453+
"$sdk64"/git-cmd.exe --command=usr\\bin\\sh.exe -l -c \
2454+
./update-patches.sh &&
2455+
git commit --amend -C HEAD ||
2456+
die "Could not update PKGBUILD of '%s' to version %s\n" \
2457+
"$package" "$version" &&
2458+
git -C "$sdk32/$pkgpath" pull "$sdk64/$pkgpath/.." master
2459+
) || exit
2460+
relnotes_feature="$(cat "$sdk64/$pkgpath/../.git/relnotes")"
2461+
;;
23692462
*)
23702463
die "Unhandled package: %s\n" "$package"
23712464
;;

0 commit comments

Comments
 (0)