1234567891011121314151617181920212223242526272829303132333435363738394041 |
-
- var fs = require('fs');
- var cp = require('./us.clang.js');
- //根据前端代码生成一个Guid的唯一文件,以供gcc编译。如果gcc支持编译内存流就不用生成文件了
- //s代表了文件内容,f代表了文件名 type代表了文件类型
- exports.createFileStream = function (res, s, f, type) {
- //c语言明确规定要后缀为.c。所以全部加后缀,不然可以省下一些代码。
- var _suf;//后缀
- switch (type) {
- case 'C': _suf = '.c'; break;
- case 'PHP': _suf = '.php'; break;
- case 'Net': _suf = '.cs'; break;
- case 'Python': _suf = '.py'; break;
- case 'Nodejs': _suf = '.js'; break;
- case 'Ruby': _suf = '.rb'; break;
- case 'Perl': _suf = '.pl'; break;
- case 'Lisp': _suf = '.lisp'; break;
- default: break;
- }
- var wstream = fs.createWriteStream('./output/userfiles/'+ f + _suf);//保存文件
- s = decodeURIComponent(s);
- wstream.write(s);
- // on Node.js older than 0.10, add cb to end()
- wstream.end(function () {
- //console.log('生成文件成功');//执行编译命令。
- switch (type) {
- case 'C': cp.exegcc(res, f, type); break;
- case 'PHP': cp.exephp(res, f, type); break;
- case 'Net': cp.exenet(res, f, type); break;
- case 'Python': cp.exepython(res, f, type); break;
- case 'Nodejs': cp.exenodejs(res, f, type); break;
- case 'Ruby': cp.exeruby(res, f, type); break;
- case 'Perl': cp.exeperl(res, f, type); break;
- case 'Lisp': cp.exelisp(res, f,type); break;
- default: break;
- }
- });
- }
|