1
1
# !/usr/bin/lsc
2
2
3
- exec = require(' child_process' ). exec
3
+ child_process = require(' child_process' )
4
4
fs = require(' fs' )
5
5
async = require(' async' )
6
+ path = require(' path' )
7
+
8
+ cwd = process .cwd()
6
9
7
10
langs =
8
- js : ' node' # javascript
9
- coffee : ' coffee' # coffeescript
10
- ls : ' lsc' # livescript
11
+ # js: 'node' # javascript
12
+ coffee : ' coffee -c ' # coffeescript
13
+ ls : ' lsc -c ' # livescript
11
14
12
15
# TODO: include arg file
13
16
# TODO: check parameter for language
14
17
# TODO: compile using langs
15
- script = require(' ./' + process .argv [2 ])
18
+
19
+ fn = path .resolve(process .argv [2 ])
20
+ pp = path .parse(fn )
21
+ scriptdir = path .dirname(fn )
22
+ ext = pp .ext
23
+ scriptname = pp .name
24
+
25
+ jsname = path .join(scriptdir , scriptname )
26
+ if ext in langs
27
+ child_process .execSync langs [ext ] + fn + ' ' + jsname
28
+
29
+ script = require(jsname )
16
30
17
31
run_npm = (script ,cb ) ->
18
32
if script .npm
19
- fs .writeFile ' package.json' , JSON .stringify(script .npm ), (err )->
33
+ fs .writeFile path .join( scriptdir , ' package.json' ) , JSON .stringify(script .npm ), (err )->
20
34
if err
21
35
return cb err
22
- exec ' yarn' , (err , stdout , stderr )->
36
+ child_process . exec ' yarn' , (err , stdout , stderr )->
23
37
if err
24
38
return cb err
25
39
return cb void
@@ -29,10 +43,10 @@ run_npm = (script,cb)->
29
43
30
44
run_yarn = (script ,cb ) ->
31
45
if script .yarn
32
- fs .writeFile ' package.json' , JSON .stringify(script .yarn ), (err )->
46
+ fs .writeFile path .join( scriptdir , ' package.json' ) , JSON .stringify(script .yarn ), (err )->
33
47
if err
34
48
return cb err
35
- exec ' yarn' , (err , stdout , stderr )->
49
+ child_process . exec ' yarn' , (err , stdout , stderr )->
36
50
if err
37
51
return cb err
38
52
return cb void
@@ -42,10 +56,10 @@ run_yarn = (script,cb)->
42
56
43
57
run_grunt = (script ,cb ) ->
44
58
if script .grunt
45
- fs .writeFile ' Gruntfile.js' , JSON .stringify(script .grunt ), (err )->
59
+ fs .writeFile path .join( scriptdir , ' Gruntfile.js' ) , JSON .stringify(script .grunt ), (err )->
46
60
if err
47
61
return cb err
48
- err , stdout , stderr <- exec ' grunt'
62
+ err , stdout , stderr <- child_process . exec ' grunt'
49
63
return cb err
50
64
return
51
65
else
@@ -86,13 +100,13 @@ http = require('http')
86
100
87
101
# generate views/templates dir
88
102
try
89
- fs .mkdirSync ' views'
103
+ fs .mkdirSync path .join( scriptdir , ' views' )
90
104
for template , content of script .views
91
- fs .writeFileSync ' views/ ' + template , content
105
+ fs .writeFileSync path .join( scriptdir , ' views' , template ) , content
92
106
93
107
app = express()
94
108
app .set ' view engine' , ' pug'
95
- app .set ' views' , __dirname + ' /views/'
109
+ app .set ' views' , scriptdir + ' /views/'
96
110
compile = (str , path ) ->
97
111
return stylus(str )
98
112
.set(' filename' , path )
0 commit comments