1
1
'use strict' ;
2
2
3
- const { readFile, writeFile, mkdir } = require ( 'fs' ) ;
3
+ const { readFile, writeFile, mkdir } = require ( 'fs' ) . promises ;
4
4
const { join, extname } = require ( 'path' ) ;
5
- const { promisify } = require ( 'util' ) ;
6
5
const yaml = require ( 'js-yaml' ) ;
7
6
const pSearch = require ( 'preferred-search' ) ;
8
7
const { all : mergeAll } = require ( 'deepmerge' ) ;
9
8
const { info } = require ( '../cli/log' ) ;
10
9
11
- const mkdirAsync = promisify ( mkdir ) ;
12
- const readFileAsync = promisify ( readFile ) ;
13
- const writeFileAsync = promisify ( writeFile ) ;
14
-
15
10
const config = {
16
11
meta : {
17
12
url : null ,
@@ -51,30 +46,27 @@ const config = {
51
46
const configFileNames = [ '.fusumarc.yml' , '.fusumarc.js' ] ;
52
47
53
48
async function init ( baseDir ) {
54
- {
55
- const data = await readFileAsync ( join ( __dirname , 'templates' , 'fusumarc.yml' ) , 'utf8' ) ;
56
-
57
- await writeFileAsync ( join ( baseDir , '.fusumarc.yml' ) , data ) ;
58
- info ( 'init' , 'Created .fusumarc.yml' ) ;
59
- }
60
-
61
- // scaffold
62
- await mkdirAsync ( join ( baseDir , 'slides' ) ) ;
63
- info ( 'init' , 'Created /slides' ) ;
64
-
65
- {
66
- const data = await readFileAsync ( join ( __dirname , 'templates' , '0-title.md' ) , 'utf8' ) ;
67
-
68
- await writeFileAsync ( join ( baseDir , 'slides' , '0-title.md' ) , data ) ;
69
- info ( 'init' , 'Created slides/0-title.md' ) ;
70
- }
71
-
72
- {
73
- const data = await readFileAsync ( join ( __dirname , 'templates' , 'style.css' ) , 'utf8' ) ;
74
-
75
- await writeFileAsync ( join ( baseDir , 'style.css' ) , data ) ;
76
- info ( 'init' , 'Created style.css' ) ;
77
- }
49
+ const templatePath = join ( __dirname , 'templates' ) ;
50
+
51
+ await Promise . all ( [
52
+ mkdir ( join ( baseDir , 'slides' ) , { recursive : true } ) ,
53
+ mkdir ( join ( baseDir , '.github' , 'workflows' ) , { recursive : true } ) ,
54
+ ] ) ;
55
+
56
+ await Promise . all ( [
57
+ writeFile ( join ( baseDir , '.fusumarc.yml' ) , await readFile ( join ( templatePath , 'fusumarc.yml' ) ) ) ,
58
+ writeFile ( join ( baseDir , 'style.css' ) , await readFile ( join ( templatePath , 'style.css' ) ) ) ,
59
+ writeFile (
60
+ join ( baseDir , 'slides' , '0-title.md' ) ,
61
+ await readFile ( join ( templatePath , '0-title.md' ) )
62
+ ) ,
63
+ writeFile (
64
+ join ( baseDir , '.github' , 'workflows' , 'fusuma.yml' ) ,
65
+ await readFile ( join ( templatePath , 'fusuma.yml' ) )
66
+ ) ,
67
+ ] ) ;
68
+
69
+ info ( 'init' , 'Added slides, style.css, fusumarc, and github actions' ) ;
78
70
}
79
71
80
72
async function read ( baseDir ) {
@@ -86,7 +78,7 @@ async function read(baseDir) {
86
78
87
79
switch ( extname ( file ) ) {
88
80
case '.yml' :
89
- return yaml . load ( await readFileAsync ( file , 'utf8' ) ) ;
81
+ return yaml . load ( await readFile ( file , 'utf8' ) ) ;
90
82
case '.js' :
91
83
return require ( file ) ;
92
84
default :
0 commit comments