@@ -7,7 +7,13 @@ ctx = vm.createContext()
7
7
vm .runInContext fs .readFileSync (__dirname + " /jslint.js" ), ctx
8
8
JSLINT = ctx .JSLINT
9
9
10
- script = fs .readFileSync process .argv [2 ], ' utf8'
10
+ try
11
+ if process .argv .length < 3
12
+ throw new Error " No file specified"
13
+ script = fs .readFileSync process .argv [2 ], ' utf8'
14
+ catch e
15
+ console .log " File could not be read"
16
+ process .exit 1
11
17
12
18
details = null
13
19
re = / \/\*\! (?:FLO| P)IM_PLUGIN([\s\S ] + )\*\/ /
@@ -18,8 +24,8 @@ script = script.replace re, (header) ->
18
24
details = JSON .parse matches[1 ]
19
25
return " "
20
26
unless details?
27
+ console .error " There are no details!"
21
28
process .exit 1
22
- console .log details
23
29
24
30
globals = [' document' ,' twttr' ]
25
31
if details .access ? and Array .isArray details .access
@@ -197,11 +203,9 @@ walk = (ast) ->
197
203
]
198
204
else if type is ' string'
199
205
ast[1 ] = ast[1 ].replace (/ \<\/ / g ," <\\ /" )
200
- console .log " STRING: #{ ast[1 ]} "
201
206
else
202
207
console .error " Unknown type: '#{ type} '"
203
208
console .log util .inspect ast, false , null , true
204
- process .exit 1
205
209
return ast
206
210
ast = parser .parse script
207
211
console .log util .inspect ast, false , null , true
@@ -212,17 +216,22 @@ ast = uglify.ast_mangle ast, {
212
216
defines : {' this' : [' name' , " null" ]}
213
217
}
214
218
# ast = uglify.ast_squeeze ast
215
- script = uglify .gen_code ast, beautify : true , indent_start : 2 , indent_level : 2 , quote_keys : true
219
+ script = uglify .gen_code ast, beautify : true , indent_start : 8 , indent_level : 2 , quote_keys : true
216
220
console .log script
217
221
218
222
script = script .replace / (\n | ^ )\/\/ . * (\n | $ )/ g , " $2"
219
223
adsafeId = " APPAAAAFF_"
220
- script = " <div id=\" #{ adsafeId} \" ><script>ADSAFE.go(\" #{ adsafeId} \" , function (dom, lib) {\n\" use strict\" ;\n #{ script} }); </script></div>"
224
+ script = " <div id=\" #{ adsafeId} \" >\n <script>\n ADSAFE.go(\" #{ adsafeId} \" , function (dom, lib) {\n \" use strict\" ;\n #{ script} }\n ); \n </script>\n </div>"
221
225
ok = JSLINT script, {
222
226
adsafe : true , fragment : true , predef : globals, browser : true , safe : true , bitwise : true , continue : true , eqeq : true , es5 : true , evil : false , forin : true , newcap : true , nomen : true , plusplus : true , regexp : true , undef : true , unparam : true , sloppy : true , stupid : true , sub : true , vars : true , white : true , css : true
223
227
}, {
224
228
plugin : false
225
229
}
226
230
unless ok
231
+ console .error " FAIL"
227
232
result = JSLINT .data ()
228
- console .dir result
233
+ console .log util .inspect result, false , 3 , true
234
+ else
235
+ script = script .replace " <script>" ," <script>\n (function(){\n var ADSAFE = new ADSAFE_APP(\" #{ adsafeId} \" ,#{ JSON .stringify (details)} );"
236
+ script = script .replace " </script>" ," }());\n </script>"
237
+ console .log script
0 commit comments