| // Copyright 2015 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 'dart:io'; |
| |
| final OperatingSystemUtils os = new OperatingSystemUtils._(); |
| |
| abstract class OperatingSystemUtils { |
| factory OperatingSystemUtils._() { |
| if (Platform.isWindows) { |
| return new _WindowsUtils(); |
| } else { |
| return new _PosixUtils(); |
| } |
| } |
| |
| /// Make the given file executable. This may be a no-op on some platforms. |
| ProcessResult makeExecutable(File file); |
| } |
| |
| class _PosixUtils implements OperatingSystemUtils { |
| ProcessResult makeExecutable(File file) { |
| return Process.runSync('chmod', ['u+x', file.path]); |
| } |
| } |
| |
| class _WindowsUtils implements OperatingSystemUtils { |
| // This is a no-op. |
| ProcessResult makeExecutable(File file) { |
| return new ProcessResult(0, 0, null, null); |
| } |
| } |