[build] udpate to gulp-haxetool 0.0.2

This commit is contained in:
2018-04-03 17:03:33 +03:00
parent 836eebaf11
commit b12b26b87e
8 changed files with 121 additions and 97 deletions

View File

@@ -3,28 +3,30 @@ const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const babel = require('gulp-babel');
const template = require('gulp-template');
const yargs = require('yargs');
const Haxe = require('gulp-haxetool').Haxe;
const FlashPlayer = require('gulp-haxetool').FlashPlayer;
const {Haxe, FlashPlayer} = require('gulp-haxetool');
const version = require('./version');
const prepare = require('./prepare');
const generate = prepare.generate;
const debug = require('./debug');
const Debug = require('./debug');
const webserver = require('gulp-webserver');
const run = require('gulp-run');
const tail = require('./tail');
const deb = require('gulp-debian');
const dateformat = require('dateformat');
const build = (platform, values) => function build() {
const argv = yargs.argv;
const build = (platform, values, debug) => function build() {
const build = dateformat(new Date(), 'yyyy-mm-dd HH:MM:ss');
let macro = [`CompilationOption.set('build','${build}')`];
if (debug) macro = macro.concat(debug.macro());
return gulp.src('.')
.pipe(new Haxe().openfl({
command: 'build',
platform: platform,
version: version,
debug: argv.dev,
values: values
debug: debug,
values: {...values, proto_debug:debug},
macro: macro,
}))
.pipe(gulp.dest(`target/${platform}`));
};
@@ -99,10 +101,10 @@ exports['client'] = gulp.series(
const testFlash = function() {
const argv = yargs.argv;
return build('flash', {proto_debug: true})()
.pipe(new FlashPlayer().run(argv.dev))
.pipe(debug());
const debug = new Debug();
return build('flash', {}, debug)()
.pipe(new FlashPlayer().run(true))
.pipe(debug.run());
};
const testHtml5 = (dom) => function() {
@@ -116,13 +118,16 @@ const testHtml5 = (dom) => function() {
)();
};
const testLinux = gulp.series(
build('linux'),
const testLinux = () => {
const debug = new Debug();
return gulp.series(
build('linux', {}, debug),
() => gulp.src('target/linux/tankz')
.pipe(run('./tankz', {cwd: 'target/linux', verbosity: 1}))
.pipe(tail(debug.log))
.pipe(tail(Debug.log))
//.pipe(gulp.dest('target/log'))
);
)();
};

View File

@@ -3,6 +3,7 @@ const through = require('through2');
const colors = require('ansi-colors');
const log = require('fancy-log');
const _colors = {
'[DEBUG]': colors.white,
'[INFO]': colors.cyan,
@@ -19,22 +20,37 @@ const getColor = (line) => {
return null;// colors.reset;
};
const _log = (line, color) => {
class Debug {
static log (line, color) {
if (color === undefined) {
color = getColor(line) || colors.white;
}
if (line[0] === '\t') {
console.log(color(line))
console.log(color(line));
} else {
const result = line.split(' ');
console.log(colors.gray(result.slice(0, 4).join(' ')) + ' ' + color(result.slice(4).join(' ')));
}
};
module.exports = () => {
constructor() {
this.host = 'localhost';
this.port = 6000 + Math.floor(Math.random() * 1000);
}
macro() {
return [
`CompilationOption.set('debug.address','${this.host}')`,
`CompilationOption.set('debug.port','${this.port}')`,
];
};
run() {
const debug = this;
return through.obj(function (file, enc, callback) {
const debug = file.debug;
if (!file.debug) {
if (this.disabled) {
this.emit('end');
callback();
return;
@@ -46,7 +62,7 @@ module.exports = () => {
for (let line of lines) if (line.length > 2) {
const newColor = getColor(line);
if (newColor != null) color = newColor;
_log(line, color);
Debug.log(line, color);
}
});
socket.on("close", () => {
@@ -59,6 +75,7 @@ module.exports = () => {
log(colors.green('[debug]'), colors.cyan('listen on'), colors.magenta(`${debug.host}:${debug.port}`));
server.listen(debug.port, debug.host);
})
};
}
}
module.exports.log = _log;
module.exports = Debug;

View File

@@ -1,33 +1,33 @@
const gulp = require('gulp');
const yargs = require('yargs');
const Haxe = require('gulp-haxetool').Haxe;
const FlashPlayer = require('gulp-haxetool').FlashPlayer;
const {Haxe, FlashPlayer} = require('gulp-haxetool');
const version = require('./version');
const prepare = require('./prepare');
const debug = require('./debug');
const Debug = require('./debug');
const dateformat = require('dateformat');
const build = (platform) => function build() {
const argv = yargs.argv;
const build = (platform, values, debug) => function build() {
const build = dateformat(new Date(), 'yyyy-mm-dd HH:MM:ss');
let macro = [`CompilationOption.set('build','${build}')`];
if (debug) macro = macro.concat(debug.macro());
return gulp.src('.')
.pipe(new Haxe().openfl({
command: 'build',
platform: platform,
version: version,
values: {
build_editor: true
},
debug: argv.dev,
values: {...values, build_editor:true},
debug: debug,
macro: macro,
}))
.pipe(gulp.dest(`target/${platform}`));
};
const testFlash = function() {
const argv = yargs.argv;
return build('flash')()
.pipe(new FlashPlayer().run(argv.dev))
.pipe(debug());
const debug = new Debug();
return build('flash', {}, debug)()
.pipe(new FlashPlayer().run(true))
.pipe(debug.run());
};

View File

@@ -1,16 +1,16 @@
const ht = require('gulp-haxetool');
const {Haxe, AdobeAir, FlashPlayer} = require('gulp-haxetool');
const packageInfo = require('../package.json');
const prepareOne = (value) => {
switch (value) {
case ht.Haxe.ID:
const haxe = new ht.Haxe();
case Haxe.ID:
const haxe = new Haxe();
return haxe.prepare().then(() => haxe.install(packageInfo.haxeDependencies));
case ht.AdobeAir.ID:
return new ht.AdobeAir().prepare();
case ht.FlashPlayer.ID:
return new ht.FlashPlayer().prepare();
case AdobeAir.ID:
return new AdobeAir().prepare();
case FlashPlayer.ID:
return new FlashPlayer().prepare();
default:
throw Error(`Unknown target: ${value}`)
}
@@ -22,11 +22,11 @@ const prepare = (...targets) => function prepare() {
};
const update = () => {
return new ht.Haxe().upgrade();
return new Haxe().upgrade();
};
const generate = () => function generate() {
return new ht.Haxe().haxelib([
return new Haxe().haxelib([
'run', 'protohx', 'generate', 'protohx.json'
]);
};

View File

@@ -1,16 +1,18 @@
const gulp = require('gulp');
const yargs = require('yargs');
const hx = require('gulp-haxetool');
const {Haxe, Neko} = require('gulp-haxetool');
const version = require('./version');
const prepare = require('./prepare');
const generate = prepare.generate;
const debug = require('./debug');
const Debug = require('./debug');
const dateformat = require('dateformat');
const build = () => function build() {
const argv = yargs.argv;
const build = () => function build(debug) {
const build = dateformat(new Date(), 'yyyy-mm-dd HH:MM:ss');
let macro = [`CompilationOption.set('build','${build}')`];
if (debug) macro = macro.concat(debug.macro());
return gulp.src('.')
.pipe(new hx.Haxe().build({
.pipe(new Haxe().build({
platform: 'neko',
version: version,
lib: [
@@ -27,21 +29,20 @@ const build = () => function build() {
],
main: 'ru.m.tankz.server.Server',
outputFile: 'tankz.n',
debug: argv.dev,
values: {
proto_debug: true
}
debug: debug,
macro: macro,
values: {proto_debug: debug}
}))
.pipe(gulp.dest('target'));
};
const test = (build) => function test() {
const argv = yargs.argv;
return build()
.pipe(new hx.Neko().run('localhost'))
.pipe(debug());
const debug = new Debug();
return build(debug)
.pipe(new Neko().run('localhost'))
.pipe(debug.run());
};
exports['server'] = gulp.series(prepare(hx.Haxe.ID), generate(), build());
exports['server:test'] = gulp.series(prepare(hx.Haxe.ID), generate(), test(build()));
exports['server'] = gulp.series(prepare(Haxe.ID), generate(), build());
exports['server:test'] = gulp.series(prepare(Haxe.ID), generate(), test(build()));

View File

View File

@@ -5,10 +5,10 @@ const clean = require('gulp-clean');
const Config = require('./config.json');
const prepare = require('./build/prepare');
const ht = require('gulp-haxetool');
const {Sdk} = require('gulp-haxetool');
if (Config.SdkDir) {
ht.Sdk.dir = Config.SdkDir;
Sdk.dir = Config.SdkDir;
}
exports.clean = () => {

View File

@@ -14,7 +14,8 @@
"gulp-run": "^1.7.1",
"gulp-template": "^5.0.0",
"gulp-uglify": "^3.0.0",
"gulp-webserver": "^0.9.1"
"gulp-webserver": "^0.9.1",
"dateformat": "^3.0.3"
},
"haxeDependencies": {
"lime": "6.0.1",