123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- /*
- servera index file
- */
- var argvs = require("optimist").argv;
- var path = require("path");
- var fs = require("fs-extra");
- var _ = require("lodash");
- var options = {
- pwd: argvs.datadir || process.env.PWD,
- dirname: argvs.dirname || __dirname,
- port: argvs.port || 3004,
- verbose: argvs.verbose || false,
- debug: argvs.debug || false,
- origin: argvs.origin || process.env.APP_DOMAIN || (Math.floor(Math.random() * 0xffffffff)),
- }
- options.configfile = argvs.configfile || path.join(options.pwd, "/servera.config.json")
- try {
- options = Object.assign(require(options.configfile), options);
- } catch (e) {
- !!options.verbose ? console.log("no file:", options.configfile) : null;
- options.noconfigfile = true;
- }
- !!options.verbose ? console.log("using config:", options) : null;
- if (argvs.help) {
- console.log("--datadir", options.pwd);
- console.log("--dirname", options.dirname);
- console.log("--port", options.port);
- console.log("--verbose", options.verbose);
- console.log("--debug", options.debug);
- console.log("--origin", options.origin);
- console.log("--configfile", options.noconfigfile ? "not found" : "", options.configfile);
- console.log("--repl", argvs.repl);
- console.log("--client", argvs.client);
- console.log("--init");
- process.exit()
- }
- if (argvs.init) {
- console.log("INIT");
- var fs = require("graceful-fs");
- if (!fs.existsSync(path.join(options.pwd, "/views"))) {
- fs.mkdirSync(path.join(options.pwd, "/views"))
- fs.copyFileSync(path.join(options.dirname, "/views/index.html"), path.join(options.pwd, "/views/index.html"))
- }
- console.log(fs);
- process.exit();
- }
- var server = require("aserver")(options);
- server = require("aserver-extend")(server);
- server = require("aserver-tools")(server);
- server.rooten = {};
- server.options = options;
- server.add_action("NOPE server.init.first", function(app) {
- app.use(server.ratelimit({
- max: 120,
- windowMs: 120 * 1000,
- delayAfter: 100
- }));
- }, 7)
- server.add_action("server.init.first", function(app) {
- app.use(function(req, res, next) {
- console.log(req.method, req.url);
- next();
- });
- }, 7)
- var tool = {};
- /*tool.template = function template(str, obj) {
- return str.replace(/\{\{([a-zA-Z0-9]*)\}\}/gi, function(a, m) {
- return obj[m] ? obj[m] : m
- })
- }*/
- tool._ = require("lodash");
- tool.util = require("util");
- //tool = require("./clienta")(tool);
- //tool = require("./dist/lib_src")(tool, false)
- server.tool = tool
- //require("./serverstd")(server);
- //require("./plugins/buckets/bucketstd")(server);
- try {
- var ff = fs.readdirSync(path.join(options.pwd, "./node_modules")).map(function(file) {
- console.log("FIII", file);
- return {
- file: file,
- isa: fs.readdirSync(path.join(options.pwd, "./node_modules/", file)).filter(function(filea) {
- return filea === "electra.json"
- })
- }
- }).filter(function(f) {
- return f.isa.length > 0
- })
- ff.map(function(ffa) {
- console.log("**** loading module: ", ffa.file)
- require(ffa.file)(server);
- })
- } catch (e) {
- console.log("ERROR:", e)
- }
- server.add_action("server.init", function(app) {
- /* app.get("/plugins/:plugin/:file", function(req, res, next) {
- res.render(path.join(options.dirname, "./plugins/", req.params.plugin, req.params.file + ".html"), Object.assign({
- req: req,
- tool: tool,
- }, tool));
- })
- app.get("/", function(req, res, next) {
- res.render("index.html", Object.assign({
- req: req,
- tool: tool,
- }, tool));
- })
- app.get("/tester", function(req, res, next) {
- res.render("test.html", Object.assign({
- req: req,
- tool: tool,
- }, tool));
- })
- */
- app.get("/", function(req, res, next) {
- res.send({
- "status": "ok"
- })
- })
- });
- server.add_action("request.init", function(req, res, next) {
- console.log("req.url", req.ip, req.url, req.parts)
- });
- try {
- require(path.join(options.pwd, "/server.js"))(server);
- } catch (e) {
- !!options.verbose ? console.log("no file:", path.join(options.pwd, "/server.js"), e) : null;
- }
- if (argvs.repl) {
- var repl = require("repl");
- var cmdline = repl.start({
- prompt: '> '
- });
- cmdline.context.server = server;
- cmdline.context.options = options;
- Object.defineProperty(cmdline.context, 'rooten', {
- enumerable: true,
- get: function get() {
- return server.rooten;
- }
- });
- function bb(arg) {
- this.name = arg
- }
- bb.prototype.test = function() {
- return this.name;
- }
- cmdline.context.bb = bb;
- cmdline.context.alle =
- cmdline.context.app = server;
- cmdline.context._ = _;
- }
- if (argvs.client) {
- console.log("client code to come");
- } else {
- server.startit();
- }
- //
- function sttttttt() {
- AWS = require("aws-sdk");
- app.aws = AWS;
- AWS.config.update({
- region: "eu-west-1",
- credentials: new AWS.CognitoIdentityCredentials({
- IdentityPoolId: "eu-west-1:5343270a-03fd-4856-ad07-25f1e2c78246"
- })
- });
- var s3 = new AWS.S3({
- apiVersion: '2006-03-01',
- params: {
- Bucket: "a.tum.dk"
- }
- });
- app.s3 = s3;
- app.s3.upload({
- Key: "data/test.json",
- Body: "{}",
- ContentType: "application/json",
- "headers": {
- "Access-Control-Allow-Origin": "*"
- },
- ACL: 'public-read'
- }, function(err, data) {
- console.log("err", err, data);
- })
- }
|