| #!/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; | |
| } | |
| } |