open.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 'use strict';
  2. var debug = require('debug')('cypress:cli');
  3. var util = require('../util');
  4. var spawn = require('./spawn');
  5. var verify = require('../tasks/verify');
  6. module.exports = {
  7. start: function start() {
  8. var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  9. if (!util.isInstalledGlobally() && !options.global && !options.project) {
  10. options.project = process.cwd();
  11. }
  12. var args = [];
  13. if (options.env) {
  14. args.push('--env', options.env);
  15. }
  16. if (options.config) {
  17. args.push('--config', options.config);
  18. }
  19. if (options.configFile !== undefined) {
  20. args.push('--config-file', options.configFile);
  21. }
  22. if (options.browser) {
  23. args.push('--browser', options.browser);
  24. }
  25. if (options.port) {
  26. args.push('--port', options.port);
  27. }
  28. if (options.project) {
  29. args.push('--project', options.project);
  30. }
  31. debug('opening from options %j', options);
  32. debug('command line arguments %j', args);
  33. function open() {
  34. return spawn.start(args, {
  35. dev: options.dev,
  36. detached: Boolean(options.detached),
  37. stdio: 'inherit'
  38. });
  39. }
  40. if (options.dev) {
  41. return open();
  42. }
  43. return verify.start().then(open);
  44. }
  45. };