| #!/usr/bin/env node |
| |
| // 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. |
| |
| var childProcess = require('child_process'); |
| var fs = require('fs'); |
| var path = require('path'); |
| var shell = require('child_process').execSync; |
| |
| var repoRootPath; |
| try { |
| repoRootPath = shellOutput('git rev-parse --show-toplevel'); |
| } catch (error) { |
| console.log('ERROR: cannot use dtrun outside of chromium repo'); |
| process.exit(1); |
| } |
| |
| var devtoolsPath = path.join(repoRootPath, 'third_party', 'devtools-frontend', 'src'); |
| |
| if (!isDir(devtoolsPath)) { |
| console.log('ERROR: cannot use dtrun outside of chromium repo'); |
| process.exit(1); |
| } |
| |
| var npmPath = shellOutput('which npm'); |
| var args = ['run']; |
| if (process.argv.length > 2) { |
| args.push(process.argv[2]); |
| args.push('--'); |
| args = args.concat(process.argv.slice(3)); |
| } |
| var child = childProcess.spawn(npmPath, args, { |
| cwd: devtoolsPath, |
| stdio: 'inherit', |
| }); |
| |
| function shellOutput(command) { |
| return shell(command).toString().trim(); |
| } |
| |
| function isDir(path) { |
| try { |
| return fs.statSync(path).isDirectory(); |
| } catch (error) { |
| return false; |
| } |
| } |