test.js 1.03 KB
module.exports = function(port, file, cb, inject){
	port = port || process.env.OPENSHIFT_NODEJS_PORT || process.env.VCAP_APP_PORT || process.env.PORT || process.argv[2] || 8765;

	var fs = require('fs');
	var Gun = require(__dirname+'/../../');

	var server = require('https').createServer({
		key: fs.readFileSync(__dirname+'/server.key'),
		cert: fs.readFileSync(__dirname+'/server.crt'),
		ca: fs.readFileSync(__dirname+'/ca.crt'),
		requestCert: true,
		rejectUnauthorized: false
	},function(req, res){
		if(Gun.serve(req, res)){ return } // filters gun requests!
		var file;
		try{file = require('fs').readFileSync(require('path').join(__dirname+'/../../examples', req.url))
		}catch(e){ file = require('fs').readFileSync(require('path').join(__dirname+'/../../examples', 'index.html')) }
		if(inject){
			file = inject(file, req, res) || file;
		}
		res.end(file);
	});

	var gun = Gun({
		file: file || 'data',
		web: server,
		localStorage: false
	});

	server.listen(port, cb);

	console.log('Server started on port ' + port + ' with /gun');
}