blob: 86e2f650b1accdf6254deed977639c4faff8325e [file] [log] [blame]
// 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;
}
}