@@ -31,6 +31,18 @@ var cmd = {
3131 type : 'boolean' ,
3232 default : false ,
3333 describe : 'Provide extra problem details in generated file'
34+ } ,
35+ desc : {
36+ alias : 'd' ,
37+ type : 'boolean' ,
38+ default : true ,
39+ describe : 'Show problem description'
40+ } ,
41+ template : {
42+ alias : 't' ,
43+ type : 'boolean' ,
44+ default : false ,
45+ describe : 'Show code template'
3446 }
3547 }
3648} ;
@@ -39,14 +51,14 @@ cmd.handler = function(argv) {
3951 core . getProblem ( argv . keyword , function ( e , problem ) {
4052 if ( e ) return log . fail ( e ) ;
4153
42- var msg = '' ;
54+ var template = _ . find ( problem . templates , function ( x ) {
55+ return x . value === argv . lang ;
56+ } ) ;
57+ if ( ! template && ( argv . template || argv . gen ) )
58+ return log . fail ( 'Unknown language "' + argv . lang + '"' ) ;
59+
60+ var fileinfo = '' ;
4361 if ( argv . gen ) {
44- var template = _ . find ( problem . templates , function ( x ) {
45- return x . value === argv . lang ;
46- } ) ;
47- if ( ! template )
48- return log . fail ( 'Failed to generate source file, ' +
49- 'unknown language "' + argv . lang + '"' ) ;
5062 problem . code = template . defaultCode ;
5163
5264 // try to use a new filename to avoid overwrite by mistake
@@ -60,24 +72,36 @@ cmd.handler = function(argv) {
6072 }
6173
6274 core . exportProblem ( problem , filename , ! argv . extra ) ;
63- msg = sprintf ( '(File: %s)' , chalk . yellow . underline ( filename ) ) ;
75+ fileinfo = sprintf ( '(File: %s)' , chalk . yellow . underline ( filename ) ) ;
76+ }
77+
78+ if ( argv . desc ) {
79+ log . info ( sprintf ( '[%d] %s %s\t%s\n' ,
80+ problem . id ,
81+ problem . name ,
82+ ( problem . starred ? chalk . yellow ( '★' ) : ' ' ) ,
83+ fileinfo ) ) ;
84+ log . info ( sprintf ( '%s\n' , chalk . underline ( problem . link ) ) ) ;
85+ log . info ( sprintf ( '* %s (%.2f%%)' , problem . level , problem . percent ) ) ;
86+ log . info ( sprintf ( '* Total Accepted: %d' , problem . totalAC ) ) ;
87+ log . info ( sprintf ( '* Total Submissions: %d' , problem . totalSubmit ) ) ;
88+ if ( problem . testable && problem . testcase ) {
89+ log . info ( sprintf ( '* Testcase Example: %s' ,
90+ chalk . yellow ( util . inspect ( problem . testcase ) ) ) ) ;
91+ }
92+ log . info ( ) ;
93+ log . info ( problem . desc ) ;
94+
95+ if ( argv . template ) {
96+ log . info ( ) ;
97+ log . info ( 'Template:' ) ;
98+ log . info ( ) ;
99+ }
64100 }
65101
66- log . info ( sprintf ( '[%d] %s %s\t%s\n' ,
67- problem . id ,
68- problem . name ,
69- ( problem . starred ? chalk . yellow ( '★' ) : ' ' ) ,
70- msg ) ) ;
71- log . info ( sprintf ( '%s\n' , chalk . underline ( problem . link ) ) ) ;
72- log . info ( sprintf ( '* %s (%.2f%%)' , problem . level , problem . percent ) ) ;
73- log . info ( sprintf ( '* Total Accepted: %d' , problem . totalAC ) ) ;
74- log . info ( sprintf ( '* Total Submissions: %d' , problem . totalSubmit ) ) ;
75- if ( problem . testable && problem . testcase ) {
76- log . info ( sprintf ( '* Testcase Example: %s' ,
77- chalk . yellow ( util . inspect ( problem . testcase ) ) ) ) ;
102+ if ( argv . template ) {
103+ log . info ( chalk . yellow ( template . defaultCode ) ) ;
78104 }
79- log . info ( ) ;
80- log . info ( problem . desc ) ;
81105 } ) ;
82106} ;
83107
0 commit comments