37
37
38
38
console . error = function ( message ) {
39
39
console . log ( chalk . bold . red ( ">>> " ) + message ) ;
40
- }
40
+ } ;
41
41
42
42
console . warn = function ( message ) {
43
43
console . log ( chalk . bold . yellow ( ">>> " ) + message ) ;
@@ -65,36 +65,43 @@ function writeSettings(data, command='<command>', successMessage = "Settings upd
65
65
} )
66
66
}
67
67
68
- //
69
-
70
- // projectman open [projectName]
71
- async function openProject ( projectName ) {
68
+ async function getProject ( projectName = undefined , action = "open" ) {
72
69
let selectedProject ;
73
- if ( settings . projects . length == 0 ) {
74
- console . error ( "No projects to open :(" ) ;
75
- console . warn ( `cd /till/project/directory/ and run ${ chalk . bold . yellow ( 'pm add' ) } to add projects and get started` ) ;
76
- return ;
77
- }
78
-
79
70
if ( ! projectName ) {
80
71
// Ask which project he wants to open
81
72
const questions = [
82
73
{
83
74
type : 'list' ,
84
- message : ' Select project to open' ,
75
+ message : ` Select project to ${ action } ` ,
85
76
name : 'selectedProject' ,
86
77
choices : settings . projects . map ( project => project . value = project )
87
78
}
88
79
] ;
89
80
90
- ( { selectedProject} = await inquirer . prompt ( questions ) ) ;
91
-
81
+ // Redirecting to stderr in order for it to be used with command substitution
82
+ var promptModule = inquirer . createPromptModule ( { output : process . stderr } ) ;
83
+ ( { selectedProject} = await promptModule ( questions ) ) ;
92
84
} else {
93
85
// If project name is mentioned then open directly
94
86
projectName = projectName . toLowerCase ( ) ;
95
87
selectedProject = settings . projects . find ( project => project . name . toLowerCase ( ) == projectName ) ;
96
88
}
97
89
90
+ return selectedProject ;
91
+ }
92
+
93
+ //
94
+
95
+ // oncmd: projectman open [projectName]
96
+ async function openProject ( projectName ) {
97
+ if ( settings . projects . length == 0 ) {
98
+ console . error ( "No projects to open :(" ) ;
99
+ console . warn ( `cd /till/project/directory/ and run ${ chalk . bold . yellow ( 'pm add' ) } to add projects and get started` ) ;
100
+ return ;
101
+ }
102
+
103
+ const selectedProject = await getProject ( projectName ) ;
104
+
98
105
if ( ! selectedProject ) {
99
106
console . error ( "Project does not exist. Add it using `pm add [projectPath]` or cd till the project folder and type `pm add`" ) ;
100
107
return ;
@@ -117,8 +124,8 @@ async function openProject(projectName){
117
124
throwCreateIssueError ( err ) ;
118
125
return ;
119
126
}
120
-
121
-
127
+
128
+ console . log ( `Opening ${ selectedProject . name } :D !` ) ;
122
129
}
123
130
124
131
// pm seteditor [command]
@@ -241,4 +248,21 @@ async function editConfigurations(){
241
248
}
242
249
}
243
250
244
- module . exports = { openProject, addProject, removeProject, editConfigurations, setEditor}
251
+ async function getProjectPath ( projectName ) {
252
+ if ( settings . projects . length === 0 ) {
253
+ console . error ( "No projects to get path :(" ) ;
254
+ console . warn ( `cd /till/project/directory/ and run ${ chalk . bold . yellow ( 'pm add' ) } to add projects and get started` ) ;
255
+ return ;
256
+ }
257
+
258
+ const selectedProject = await getProject ( projectName , "get directory" ) ;
259
+
260
+ if ( ! selectedProject ) {
261
+ console . error ( "Project does not exist. Add it using `pm add [projectPath]` or cd till the project folder and type `pm add`" ) ;
262
+ return ;
263
+ }
264
+
265
+ console . log ( selectedProject . path ) ;
266
+ }
267
+
268
+ module . exports = { openProject, addProject, removeProject, editConfigurations, setEditor, getProjectPath} ;
0 commit comments