mirror of
https://github.com/flutter/flutter
synced 2024-08-27 03:50:33 +00:00
Add the ability to inject a bootstrap script (#66897)
This commit is contained in:
parent
1d93be3d3d
commit
5f76bfb4af
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -24,6 +24,8 @@
|
|||
|
||||
# Flutter repo-specific
|
||||
/bin/cache/
|
||||
/bin/internal/bootstrap.bat
|
||||
/bin/internal/bootstrap.sh
|
||||
/bin/mingit/
|
||||
/dev/benchmarks/mega_gallery/
|
||||
/dev/bots/.recipe_deps
|
||||
|
|
|
@ -61,6 +61,12 @@ IF NOT EXIST "%cache_dir%" (
|
|||
GOTO :after_subroutine
|
||||
|
||||
:subroutine
|
||||
REM If present, run the bootstrap script first
|
||||
SET bootstrap_path=%FLUTTER_ROOT%\bin\internal\bootstrap.bat
|
||||
IF EXIST "%bootstrap_path%" (
|
||||
CALL "%bootstrap_path%"
|
||||
)
|
||||
|
||||
PUSHD "%flutter_root%"
|
||||
FOR /f %%r IN ('git rev-parse HEAD') DO SET revision=%%r
|
||||
POPD
|
||||
|
|
|
@ -166,6 +166,12 @@ function upgrade_flutter () (
|
|||
function shared::execute() {
|
||||
export FLUTTER_ROOT="$(cd "${BIN_DIR}/.." ; pwd -P)"
|
||||
|
||||
# If present, run the bootstrap script first
|
||||
BOOTSTRAP_PATH="$FLUTTER_ROOT/bin/internal/bootstrap.sh"
|
||||
if [ -f "$BOOTSTRAP_PATH" ]; then
|
||||
source "$BOOTSTRAP_PATH"
|
||||
fi
|
||||
|
||||
FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
|
||||
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
|
||||
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
|
||||
|
|
|
@ -170,4 +170,28 @@ void main() {
|
|||
expect(result.exitCode, 1);
|
||||
expect(result.stderr, contains('Invalid `--debug-uri`: http://127.0.0.1:3333*/'));
|
||||
});
|
||||
|
||||
testWithoutContext('will load bootstrap script before starting', () async {
|
||||
final String flutterBin =
|
||||
fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter');
|
||||
|
||||
final File bootstrap = fileSystem.file(fileSystem.path.join(
|
||||
getFlutterRoot(),
|
||||
'bin',
|
||||
'internal',
|
||||
platform.isWindows ? 'bootstrap.bat' : 'bootstrap.sh'));
|
||||
|
||||
try {
|
||||
bootstrap.writeAsStringSync('echo TESTING 1 2 3');
|
||||
|
||||
final ProcessResult result = await processManager.run(<String>[
|
||||
flutterBin,
|
||||
...getLocalEngineArguments(),
|
||||
]);
|
||||
|
||||
expect(result.stdout, contains('TESTING 1 2 3'));
|
||||
} finally {
|
||||
bootstrap.deleteSync();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue