summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRudolf Polzer <divverent@xonotic.org>2013-10-30 16:08:06 +0100
committerRudolf Polzer <divVerent@xonotic.org>2013-11-04 11:31:11 +0100
commit78f721cb8b194beab1044a0a6f2ee7c7028d7887 (patch)
treeaf9479a3c6180523b6cbe443c3b9b1a6baca3618
parent9b7656d6626b3a970b05fcd4cd19cb2f802f9e15 (diff)
downloadmpv-build-78f721cb8b194beab1044a0a6f2ee7c7028d7887.tar.bz2
mpv-build-78f721cb8b194beab1044a0a6f2ee7c7028d7887.tar.xz
./update script: support extra arguments.
--submodule: update to the submodule-registered versions. --master: update to the master branch versions. --release: update to the latest released versions.
-rwxr-xr-xupdate66
1 files changed, 63 insertions, 3 deletions
diff --git a/update b/update
index de1b51a..0b5e7e0 100755
--- a/update
+++ b/update
@@ -1,4 +1,64 @@
#!/bin/sh
-git pull
-git submodule sync
-git submodule update --init
+
+do_submodules()
+{
+ set -ex
+ echo >&2 "Executing: git submodule sync"
+ git submodule sync
+ echo >&2 "Executing: git submodule update --init"
+ git submodule update --init
+}
+
+do_gitmaster()
+{
+ set -ex
+ git submodule foreach 'git checkout master'
+ git submodule foreach 'git remote prune origin'
+}
+
+do_releasetag_submodule()
+{
+ (
+ cd "$1"
+ version=`git tag | grep "^$2[0-9]" | sort -V | tail -n 1`
+ git checkout --detach refs/tags/"$version"
+ )
+}
+
+do_releasetag()
+{
+ set -ex
+ git submodule foreach 'git fetch'
+ git submodule foreach 'git remote prune origin'
+ do_releasetag_submodule ffmpeg 'n'
+ do_releasetag_submodule fribidi ''
+ do_releasetag_submodule libass ''
+ do_releasetag_submodule mpv 'v'
+}
+
+if [ x"$1" != x"--skip-selfupdate" ]; then
+ (
+ set -ex
+ git pull
+ )
+ exec "$0" --skip-selfupdate "$@"
+fi
+shift
+
+case "$1" in
+ --submodule|'')
+ do_submodules
+ ;;
+ --master)
+ do_gitmaster
+ ;;
+ --release)
+ do_releasetag
+ ;;
+ *)
+ echo >&2 "$0 --submodule"
+ echo >&2 "$0 --master"
+ echo >&2 "$0 --release"
+ exit 0
+ ;;
+esac