Remove deprecated GlobalVarConfig::set()
[lhc/web/wiklou.git] / maintenance / resources / update-oojs.sh
index f26350f..d9e6fb9 100755 (executable)
@@ -1,25 +1,26 @@
 #!/usr/bin/env bash
 
-if [ "$2" != "" ]
+if [ -n "$2" ]
 then
+       # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
        exit 1
 fi
 
-MW_DIR=$(cd $(dirname $0)/../..; pwd) # e.g. mediawiki-core/
-NPM_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'mw-update-oojs'` # e.g. /tmp/mw-update-oojs.rI0I5Vir
-
-# Prepare MediaWiki working copy
-cd $MW_DIR
-git reset resources/lib/oojs/ && git checkout resources/lib/oojs/ && git fetch origin || exit 1
+REPO_DIR=$(cd "$(dirname $0)/../.."; pwd) # Root dir of the git repo working tree
+TARGET_DIR="resources/lib/oojs" # Destination relative to the root of the repo
+NPM_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs') # e.g. /tmp/update-oojs.rI0I5Vir
 
+# Prepare working tree
+cd "$REPO_DIR" &&
+git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
 git checkout -B upstream-oojs origin/master || exit 1
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ "$1" != "" ]
+if [ -n "$1" ]
 then
-       npm install oojs@$1 || exit 1
+       npm install "oojs@$1" || exit 1
 else
        npm install oojs || exit 1
 fi
@@ -32,13 +33,13 @@ then
 fi
 
 # Copy file(s)
-mv ./node_modules/oojs/dist/* $MW_DIR/resources/lib/oojs/ || exit 1
-
-# Generate commit
-cd $MW_DIR || exit 1
+rsync --force ./node_modules/oojs/dist/oojs.jquery.js "$REPO_DIR/$TARGET_DIR" || exit 1
 
 # Clean up temporary area
-rm -rf $NPM_DIR
+rm -rf "$NPM_DIR"
+
+# Generate commit
+cd $REPO_DIR || exit 1
 
 COMMITMSG=$(cat <<END
 Update OOjs to v$OOJS_VERSION
@@ -48,4 +49,5 @@ Release notes:
 END
 )
 
-git commit resources/lib/oojs/ -m "$COMMITMSG" || exit 1
+# Stage deletion, modification and creation of files. Then commit.
+git add --update $TARGET_DIR && git add $TARGET_DIR && git commit -m "$COMMITMSG" || exit 1