UNPKG

959 BJavaScriptView Raw
1const opn = require( 'opn' );
2const chalk = require( 'chalk' );
3const nconf = require( 'nconf' );
4const fs = require( 'fs' );
5const util = require( '../lib/util' );
6
7/**
8 * The main command.
9 */
10function open() {
11 if ( !util.localProjectsExist() ) {
12 console.error( chalk`{red.bold No projects available.}` );
13 process.exit( 1 );
14 }
15
16 const localProjects = nconf.get( 'local_projects' );
17 const cwd = process.cwd();
18 let inLocalProject = false;
19
20 Object.keys( localProjects ).forEach( ( key ) => {
21 const url = nconf.get( `local_projects:${key}:url` );
22 const path = nconf.get( `local_projects:${key}:path` );
23
24 // If command is ran inside project directory or subdirectory, open in default browser.
25 if ( cwd.substring( 0, path.length ) === path ) {
26 opn( url, { wait: false });
27 inLocalProject = true;
28 }
29 });
30
31 if ( !inLocalProject ) {
32 console.log( chalk`{red Command must be ran from within a local project.}` );
33 }
34}
35
36module.exports = open;