blob: a5d6733da1e447774f277fa1628b581ab1b97ce3 [file] [log] [blame]
// Copyright 2016 The Chromium 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:args/command_runner.dart';
import 'package:flutter_tools/src/base/context.dart';
import 'package:flutter_tools/src/base/process_manager.dart';
import 'package:flutter_tools/src/runner/flutter_command.dart';
import 'package:flutter_tools/src/runner/flutter_command_runner.dart';
CommandRunner<Null> createTestCommandRunner([FlutterCommand command]) {
FlutterCommandRunner runner = new FlutterCommandRunner();
if (command != null)
runner.addCommand(command);
return runner;
}
/// Updates [path] to have a modification time [seconds] from now.
void updateFileModificationTime(String path,
DateTime baseTime,
int seconds) {
DateTime modificationTime = baseTime.add(new Duration(seconds: seconds));
String argument =
'${modificationTime.year}'
'${modificationTime.month.toString().padLeft(2, "0")}'
'${modificationTime.day.toString().padLeft(2, "0")}'
'${modificationTime.hour.toString().padLeft(2, "0")}'
'${modificationTime.minute.toString().padLeft(2, "0")}'
'.${modificationTime.second.toString().padLeft(2, "0")}';
ProcessManager processManager = context[ProcessManager];
processManager.runSync('touch', <String>['-t', argument, path]);
}