Files
tankz/build/server.js
2017-12-17 22:29:16 +03:00

64 lines
2.0 KiB
JavaScript
Executable File

"use strict";
const gulp = require('gulp');
const yargs = require('yargs');
const tail = require('../tasks/tail');
const Haxe = require('../tasks/haxe');
const FlashPlayer = require('../tasks/flashplayer');
const Neko = require('../tasks/neko');
const version = require('./version');
const dateformat = require('dateformat');
const prepare = require('./prepare');
const debug = require('../tasks/debug');
const build = (params) => function build() {
params = params || {};
const argv = yargs.argv;
const values = {
build: dateformat(new Date(), 'yyyy-mm-dd h:MM:ss'),
};
let outputFile = 'tankz.n';
if (params.outputFile) {
outputFile = params.outputFile;
}
if (argv.dev) {
values.dev = true;
if (!values['dev.address']) values['dev.address'] = argv['dev-address'] || 'localhost';
if (!values['dev.port']) values['dev.port'] = argv['dev-port'] || 5000;
}
return gulp.src('.')
.pipe(new Haxe().build({
platform: 'neko',
version: version,
values: values,
lib: [
'protohx',
'orm',
'haxework',
],
cp: [
'src/common/haxe',
'src/server/haxe',
'src-gen/haxe',
],
macro: [
`CompilationOption.set('debug.address','${values['dev.address']}')`,
`CompilationOption.set('debug.port','${values['dev.port']}')`,
],
main: 'ru.m.tankz.server.Server',
outputFile: outputFile,
}))
.pipe(gulp.dest('target'));
};
const test = (build) => function test() {
const argv = yargs.argv;
return build()
.pipe(new Neko().run(argv.dev))
.pipe(debug());
};
exports['server'] = gulp.series(prepare(Haxe.ID), build());
exports['server:test'] = gulp.series(prepare(Haxe.ID, FlashPlayer.ID), test(build()));