@@ -14,6 +14,7 @@ const __dirname = dirname(__filename);
14
14
15
15
const logger = new Logger ( ) ;
16
16
logger . time ( "create-hexo" ) ;
17
+
17
18
const STARTER = "hexo-starter" ;
18
19
const STARTER_DIR = pathResolve ( __dirname , `../${ STARTER } /` ) ;
19
20
const RM_FILES = [ ".git" , ".github" ] ;
@@ -40,32 +41,16 @@ let initOptions: InitOptions = {
40
41
const main = async ( ) => {
41
42
[ packageJson , starterVersion ] = await pre ( ) ;
42
43
43
- init ( ) ;
44
+ parseArgs ( ) ;
44
45
45
- checkInfo ( ) ;
46
+ printInfo ( ) ;
46
47
47
48
initOptions . force
48
49
? logger . warn ( "Running in force mode. It's dangerous!" )
49
50
: await checkPath ( initOptions . sitePath ) ;
50
51
51
52
logger . group ( `Copying \`${ STARTER } \`` ) ;
52
- const [ voidd , pm ] = await Promise . all ( [
53
- cp ( STARTER_DIR , initOptions . blogPath , {
54
- force : initOptions . force ,
55
- recursive : true ,
56
- } )
57
- . then ( ( ) => {
58
- logger . log ( `Copied \`${ STARTER } \` to "${ initOptions . blogPath } "` ) ;
59
- } )
60
- . catch ( ( err ) => {
61
- logger . error ( "Copy failed: " , err ) ;
62
- process . exit ( 1 ) ;
63
- } )
64
- . finally ( ( ) => {
65
- logger . groupEnd ( ) ;
66
- } ) ,
67
- checkPackageManager ( ) ,
68
- ] ) ;
53
+ const [ _ , pm ] = await Promise . all ( [ copyStarter ( ) , checkPackageManager ( ) ] ) ;
69
54
logger . groupEnd ( ) ;
70
55
71
56
logger . group ( `Installing packages via \`${ pm } \`` ) ;
@@ -98,7 +83,8 @@ const pre = () => {
98
83
logger . groupEnd ( ) ;
99
84
return Promise . all ( [ packageJson , starterVersion ] ) ;
100
85
} ;
101
- const init = ( ) => {
86
+
87
+ const parseArgs = ( ) => {
102
88
const program = new Command ( packageJson . name )
103
89
. argument ( "[site_directory]" , "the folder that you want to load Hexo" )
104
90
. usage ( `[site_directory]` )
@@ -141,7 +127,7 @@ const printUsage = () => {
141
127
logger . groupEnd ( ) ;
142
128
} ;
143
129
144
- const checkInfo = ( ) => {
130
+ const printInfo = ( ) => {
145
131
logger . group ( "Env Info" ) ;
146
132
logger . log ( "runtime path: " , process . argv [ 0 ] ) ;
147
133
logger . log ( "runtime version: " , process . versions . node ) ;
@@ -153,6 +139,23 @@ const checkInfo = () => {
153
139
logger . groupEnd ( ) ;
154
140
} ;
155
141
142
+ const copyStarter = ( ) => {
143
+ return cp ( STARTER_DIR , initOptions . sitePath , {
144
+ force : initOptions . force ,
145
+ recursive : true ,
146
+ } )
147
+ . then ( ( ) => {
148
+ logger . log ( `Copied \`${ STARTER } \` to "${ initOptions . sitePath } "` ) ;
149
+ } )
150
+ . catch ( ( err ) => {
151
+ logger . error ( "Copy failed: " , err ) ;
152
+ process . exit ( 1 ) ;
153
+ } )
154
+ . finally ( ( ) => {
155
+ logger . groupEnd ( ) ;
156
+ } ) ;
157
+ } ;
158
+
156
159
const checkPath = ( path : string ) => {
157
160
return readdir ( path )
158
161
. then ( ( files ) => {
@@ -226,7 +229,7 @@ const installPackage = (pm: string) => {
226
229
} ;
227
230
228
231
const post = ( ) => {
229
- const ls : any [ ] = [ ] ;
232
+ const ls : Array < Promise < unknown > > = [ ] ;
230
233
231
234
RM_FILES . forEach ( ( item ) => {
232
235
ls . push (
@@ -265,8 +268,9 @@ const post = () => {
265
268
266
269
return Promise . all ( ls ) ;
267
270
} ;
271
+
268
272
const end = async ( ) => {
269
- logger . group ( "Finshed !" ) ;
273
+ logger . group ( "Finished !" ) ;
270
274
logger . info ( "Enjoy yourself!" , "\n" ) ;
271
275
logger . groupEnd ( ) ;
272
276
logger . timeEnd ( "create-hexo" ) ;
0 commit comments