"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()));