// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:file/file.dart'; import 'package:file/local.dart'; import 'package:meta/meta.dart'; import 'package:platform/platform.dart'; /// The current host machine running the tests. HostAgent get hostAgent => HostAgent(platform: const LocalPlatform(), fileSystem: const LocalFileSystem()); /// Host machine running the tests. class HostAgent { HostAgent({required Platform platform, required FileSystem fileSystem}) : _platform = platform, _fileSystem = fileSystem; final Platform _platform; final FileSystem _fileSystem; /// Creates a directory to dump file artifacts. Directory? get dumpDirectory { if (_dumpDirectory == null) { // Set in LUCI recipe. final String? directoryPath = _platform.environment['FLUTTER_LOGS_DIR']; if (directoryPath != null) { _dumpDirectory = _fileSystem.directory(directoryPath)..createSync(recursive: true); print('Found FLUTTER_LOGS_DIR dump directory ${_dumpDirectory?.path}'); } } return _dumpDirectory; } static Directory? _dumpDirectory; @visibleForTesting void resetDumpDirectory() { _dumpDirectory = null; } }