[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 uglify = require('gulp-uglify');
const babel = require('gulp-babel'); const babel = require('gulp-babel');
const template = require('gulp-template'); const template = require('gulp-template');
const yargs = require('yargs'); const {Haxe, FlashPlayer} = require('gulp-haxetool');
const Haxe = require('gulp-haxetool').Haxe;
const FlashPlayer = require('gulp-haxetool').FlashPlayer;
const version = require('./version'); const version = require('./version');
const prepare = require('./prepare'); const prepare = require('./prepare');
const generate = prepare.generate; const generate = prepare.generate;
const debug = require('./debug'); const Debug = require('./debug');
const webserver = require('gulp-webserver'); const webserver = require('gulp-webserver');
const run = require('gulp-run'); const run = require('gulp-run');
const tail = require('./tail'); const tail = require('./tail');
const deb = require('gulp-debian'); const deb = require('gulp-debian');
const dateformat = require('dateformat');
const build = (platform, values) => function build() { const build = (platform, values, debug) => function build() {
const argv = yargs.argv; 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('.') return gulp.src('.')
.pipe(new Haxe().openfl({ .pipe(new Haxe().openfl({
command: 'build', command: 'build',
platform: platform, platform: platform,
version: version, version: version,
debug: argv.dev, debug: debug,
values: values values: {...values, proto_debug:debug},
macro: macro,
})) }))
.pipe(gulp.dest(`target/${platform}`)); .pipe(gulp.dest(`target/${platform}`));
}; };
@@ -99,10 +101,10 @@ exports['client'] = gulp.series(
const testFlash = function() { const testFlash = function() {
const argv = yargs.argv; const debug = new Debug();
return build('flash', {proto_debug: true})() return build('flash', {}, debug)()
.pipe(new FlashPlayer().run(argv.dev)) .pipe(new FlashPlayer().run(true))
.pipe(debug()); .pipe(debug.run());
}; };
const testHtml5 = (dom) => function() { const testHtml5 = (dom) => function() {
@@ -116,13 +118,16 @@ const testHtml5 = (dom) => function() {
)(); )();
}; };
const testLinux = gulp.series( const testLinux = () => {
build('linux'), const debug = new Debug();
return gulp.series(
build('linux', {}, debug),
() => gulp.src('target/linux/tankz') () => gulp.src('target/linux/tankz')
.pipe(run('./tankz', {cwd: 'target/linux', verbosity: 1})) .pipe(run('./tankz', {cwd: 'target/linux', verbosity: 1}))
.pipe(tail(debug.log)) .pipe(tail(Debug.log))
//.pipe(gulp.dest('target/log')) //.pipe(gulp.dest('target/log'))
); )();
};

View File

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

View File

@@ -1,33 +1,33 @@
const gulp = require('gulp'); const gulp = require('gulp');
const yargs = require('yargs'); const {Haxe, FlashPlayer} = require('gulp-haxetool');
const Haxe = require('gulp-haxetool').Haxe;
const FlashPlayer = require('gulp-haxetool').FlashPlayer;
const version = require('./version'); const version = require('./version');
const prepare = require('./prepare'); const prepare = require('./prepare');
const debug = require('./debug'); const Debug = require('./debug');
const dateformat = require('dateformat');
const build = (platform) => function build() { const build = (platform, values, debug) => function build() {
const argv = yargs.argv; 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('.') return gulp.src('.')
.pipe(new Haxe().openfl({ .pipe(new Haxe().openfl({
command: 'build', command: 'build',
platform: platform, platform: platform,
version: version, version: version,
values: { values: {...values, build_editor:true},
build_editor: true debug: debug,
}, macro: macro,
debug: argv.dev,
})) }))
.pipe(gulp.dest(`target/${platform}`)); .pipe(gulp.dest(`target/${platform}`));
}; };
const testFlash = function() { const testFlash = function() {
const argv = yargs.argv; const debug = new Debug();
return build('flash')() return build('flash', {}, debug)()
.pipe(new FlashPlayer().run(argv.dev)) .pipe(new FlashPlayer().run(true))
.pipe(debug()); .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 packageInfo = require('../package.json');
const prepareOne = (value) => { const prepareOne = (value) => {
switch (value) { switch (value) {
case ht.Haxe.ID: case Haxe.ID:
const haxe = new ht.Haxe(); const haxe = new Haxe();
return haxe.prepare().then(() => haxe.install(packageInfo.haxeDependencies)); return haxe.prepare().then(() => haxe.install(packageInfo.haxeDependencies));
case ht.AdobeAir.ID: case AdobeAir.ID:
return new ht.AdobeAir().prepare(); return new AdobeAir().prepare();
case ht.FlashPlayer.ID: case FlashPlayer.ID:
return new ht.FlashPlayer().prepare(); return new FlashPlayer().prepare();
default: default:
throw Error(`Unknown target: ${value}`) throw Error(`Unknown target: ${value}`)
} }
@@ -22,11 +22,11 @@ const prepare = (...targets) => function prepare() {
}; };
const update = () => { const update = () => {
return new ht.Haxe().upgrade(); return new Haxe().upgrade();
}; };
const generate = () => function generate() { const generate = () => function generate() {
return new ht.Haxe().haxelib([ return new Haxe().haxelib([
'run', 'protohx', 'generate', 'protohx.json' 'run', 'protohx', 'generate', 'protohx.json'
]); ]);
}; };

View File

@@ -1,16 +1,18 @@
const gulp = require('gulp'); const gulp = require('gulp');
const yargs = require('yargs'); const {Haxe, Neko} = require('gulp-haxetool');
const hx = require('gulp-haxetool');
const version = require('./version'); const version = require('./version');
const prepare = require('./prepare'); const prepare = require('./prepare');
const generate = prepare.generate; const generate = prepare.generate;
const debug = require('./debug'); const Debug = require('./debug');
const dateformat = require('dateformat');
const build = () => function build() { const build = () => function build(debug) {
const argv = yargs.argv; 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('.') return gulp.src('.')
.pipe(new hx.Haxe().build({ .pipe(new Haxe().build({
platform: 'neko', platform: 'neko',
version: version, version: version,
lib: [ lib: [
@@ -27,21 +29,20 @@ const build = () => function build() {
], ],
main: 'ru.m.tankz.server.Server', main: 'ru.m.tankz.server.Server',
outputFile: 'tankz.n', outputFile: 'tankz.n',
debug: argv.dev, debug: debug,
values: { macro: macro,
proto_debug: true values: {proto_debug: debug}
}
})) }))
.pipe(gulp.dest('target')); .pipe(gulp.dest('target'));
}; };
const test = (build) => function test() { const test = (build) => function test() {
const argv = yargs.argv; const debug = new Debug();
return build() return build(debug)
.pipe(new hx.Neko().run('localhost')) .pipe(new Neko().run('localhost'))
.pipe(debug()); .pipe(debug.run());
}; };
exports['server'] = gulp.series(prepare(hx.Haxe.ID), generate(), build()); exports['server'] = gulp.series(prepare(Haxe.ID), generate(), build());
exports['server:test'] = gulp.series(prepare(hx.Haxe.ID), generate(), test(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 Config = require('./config.json');
const prepare = require('./build/prepare'); const prepare = require('./build/prepare');
const ht = require('gulp-haxetool'); const {Sdk} = require('gulp-haxetool');
if (Config.SdkDir) { if (Config.SdkDir) {
ht.Sdk.dir = Config.SdkDir; Sdk.dir = Config.SdkDir;
} }
exports.clean = () => { exports.clean = () => {

View File

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