Add support for different default branches in roll-shader-deps

tint has moved to using origin/main, and shaderc is soon to migrate

Change-Id: I578e4df91330351e10513874b2ca2728e4227803
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/23320
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/scripts/roll-shader-deps.sh b/scripts/roll-shader-deps.sh
index 8d061e2..ac6db48 100755
--- a/scripts/roll-shader-deps.sh
+++ b/scripts/roll-shader-deps.sh
@@ -14,21 +14,40 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Attempts to roll the shaderc related entries in DEPS to origin/master and
-# creates a commit.
+# Attempts to roll all entries in DEPS to tip-of-tree and create a commit.
 #
 # Depends on roll-dep from depot_path being in PATH.
 
+glslang_dir="third_party/glslang/"
+glslang_trunk="origin/master"
+shaderc_dir="third_party/shaderc/"
+shaderc_trunk="origin/main"
+spirv_cross_dir="third_party/spirv-cross/"
+spirv_cross_trunk="origin/master"
+spirv_headers_dir="third_party/spirv-headers/"
+spirv_headers_trunk="origin/master"
+spirv_tools_dir="third_party/spirv-tools/"
+spirv_tools_trunk="origin/master"
+tint_dir="third_party/tint/"
+tint_trunk="origin/main"
+
 # This script assumes it's parent directory is the repo root.
 repo_path=$(dirname "$0")/..
 
-glslang_dir="third_party/glslang/"
-shaderc_dir="third_party/shaderc/"
-spirv_cross_dir="third_party/spirv-cross/"
-spirv_headers_dir="third_party/spirv-headers/"
-spirv_tools_dir="third_party/SPIRV-Tools/"
-tint_dir="third_party/tint/"
-
 cd "$repo_path"
 
-roll-dep "$@" "${glslang_dir}" "${shaderc_dir}" "${spirv_cross_dir}" "${spirv_headers_dir}" "${spirv_tools_dir}" "${tint_dir}"
+if [[ $(git diff --stat) != '' ]]; then
+    echo "Working tree is dirty, commit changes before attempting to roll DEPS"
+    exit 1
+fi
+
+old_head=$(git rev-parse HEAD)
+
+roll-dep --ignore-dirty-tree --roll-to="${glslang_trunk}" "${glslang_dir}"
+roll-dep --ignore-dirty-tree --roll-to="${shaderc_trunk}" "${shaderc_dir}"
+roll-dep --ignore-dirty-tree --roll-to="${spirv_cross_trunk}" "${spirv_cross_dir}"
+roll-dep --ignore-dirty-tree --roll-to="${spirv_headers_trunk}" "${spirv_headers_dir}"
+roll-dep --ignore-dirty-tree --roll-to="${spirv_tools_trunk}" "${spirv_tools_dir}"
+roll-dep --ignore-dirty-tree --roll-to="${tint_trunk}" "${tint_dir}"
+
+git rebase --interactive "${old_head}"