summaryrefslogtreecommitdiffstats
path: root/mach.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'mach.ps1')
-rw-r--r--mach.ps150
1 files changed, 50 insertions, 0 deletions
diff --git a/mach.ps1 b/mach.ps1
new file mode 100644
index 0000000000..51f66aeed8
--- /dev/null
+++ b/mach.ps1
@@ -0,0 +1,50 @@
+$mypath = $MyInvocation.MyCommand.Path
+$machpath = $mypath.substring(0, $mypath.length - 4)
+
+if (Get-Command py -ErrorAction SilentlyContinue) {
+ $python_executable = "py"
+} else {
+ $python_executable = "python"
+}
+
+if (-not (test-path env:MACH_PS1_USE_MOZILLABUILD)) {
+ &$python_executable $machpath $args
+ exit $lastexitcode
+}
+
+if (-not (test-path env:MOZILLABUILD)) {
+ echo "No MOZILLABUILD environment variable found, terminating."
+ exit 1
+}
+
+$machpath = ($machpath -replace '\\', '/')
+
+if ($machpath.contains(' ')) {
+ echo @'
+The repository path contains whitespace which currently isn't supported in mach.ps1.
+Please run MozillaBuild manually for now.
+'@
+ exit 1
+}
+
+for ($i = 0; $i -lt $args.length; $i++) {
+ $arg = $args[$i]
+ if ($arg.contains(' ')) {
+ echo @'
+The command contains whitespace which currently isn't supported in mach.ps1.
+Please run MozillaBuild manually for now.
+'@
+ exit 1
+ }
+}
+
+$mozillabuild_version = Get-Content "$env:MOZILLABUILD\VERSION"
+# Remove "preX" postfix if the current MozillaBuild is a prerelease.
+$mozillabuild_version = [decimal]($mozillabuild_version -replace "pre.*")
+
+if ($mozillabuild_version -ge 4.0) {
+ & "$env:MOZILLABUILD/start-shell.bat" -no-start -defterm -c "$machpath $args"
+} else {
+ & "$env:MOZILLABUILD/start-shell.bat" $machpath $args
+}
+exit $lastexitcode