mirror of
https://github.com/flutter/flutter.git
synced 2026-01-09 07:51:35 +08:00
After git clone flutter/flutter, flutter commands require the use of powershell to run ps1 scripts. On my corporate workstation, I need to use a pwsh.bat wrapper to run ps1 scripts. This PR uses `pwsh` instead of `pwsh.exe` to find and use a bat wrapper from the path if present. Closes https://github.com/flutter/flutter/issues/171777. ## Pre-launch Checklist - [X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [X] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [X] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [X] I signed the [CLA]. - [X] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing.
50 lines
1.9 KiB
Batchfile
50 lines
1.9 KiB
Batchfile
@ECHO off
|
|
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
|
REM Use of this source code is governed by a BSD-style license that can be
|
|
REM found in the LICENSE file.
|
|
|
|
REM ---------------------------------- NOTE ----------------------------------
|
|
REM
|
|
REM Please keep the logic in this file consistent with the logic in the
|
|
REM `dart` script in the same directory to ensure that Flutter & Dart continue to
|
|
REM work across all platforms!
|
|
REM
|
|
REM --------------------------------------------------------------------------
|
|
|
|
SETLOCAL
|
|
|
|
FOR %%i IN ("%~dp0..") DO SET FLUTTER_ROOT=%%~fi
|
|
|
|
REM Detect which PowerShell executable is available on the host
|
|
REM PowerShell version <= 5: PowerShell.exe
|
|
REM PowerShell version >= 6: pwsh.exe
|
|
WHERE /Q pwsh && (
|
|
SET "powershell_executable=call pwsh"
|
|
) || WHERE /Q PowerShell.exe && (
|
|
SET powershell_executable=PowerShell.exe
|
|
) || (
|
|
ECHO Error: PowerShell executable not found. 1>&2
|
|
ECHO Either pwsh.exe or PowerShell.exe must be in your PATH. 1>&2
|
|
EXIT /B 1
|
|
)
|
|
|
|
REM Include shared scripts in shared.bat
|
|
SET shared_bin=%FLUTTER_ROOT%/bin/internal/shared.bat
|
|
CALL "%shared_bin%"
|
|
|
|
SET cache_dir=%FLUTTER_ROOT%\bin\cache
|
|
SET dart_sdk_path=%cache_dir%\dart-sdk
|
|
SET dart=%dart_sdk_path%\bin\dart.exe
|
|
|
|
SET exit_with_errorlevel=%FLUTTER_ROOT%/bin/internal/exit_with_errorlevel.bat
|
|
|
|
REM Chaining the call to 'dart' and 'exit' with an ampersand ensures that
|
|
REM Windows reads both commands into memory once before executing them. This
|
|
REM avoids nasty errors that may otherwise occur when the dart command (e.g. as
|
|
REM part of 'flutter upgrade') modifies this batch script while it is executing.
|
|
REM
|
|
REM Do not use the CALL command in the next line to execute Dart. CALL causes
|
|
REM Windows to re-read the line from disk after the CALL command has finished
|
|
REM regardless of the ampersand chain.
|
|
"%dart%" %* & "%exit_with_errorlevel%"
|