-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgulpfile.js
More file actions
88 lines (87 loc) · 2.41 KB
/
Copy pathgulpfile.js
File metadata and controls
88 lines (87 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const gulp = require('gulp')
, replace = require('gulp-replace')
, rename = require('gulp-rename')
, merge = require('merge-stream')
, zip = require('gulp-zip')
, fs = require('fs')
const Scripts = {
AutoPresets: {
LUA: 'Onyx-Auto-Presets.lua',
Header: {
Match: '--##LUAPRESETSINCLUDE##--',
Replace: 'Auto-Presets.lua'
}
},
CreatePlaybackFromPresets: {
LUA: 'Onyx-Create-Playbacks-from-Presets.lua'
},
DeleteCuelists: {
LUA: 'Onyx-Delete-Cuelists.lua'
},
DeleteGroups: {
LUA: 'Onyx-Delete-Groups.lua'
},
DeletePresets: {
LUA: 'Onyx-Delete-Presets.lua'
},
RenameCuelists: {
LUA: 'Onyx-Rename-Cuelists.lua'
},
UpdateCueFadeCuelistRelease: {
LUA: 'Onyx-Update-CueFade-CuelistRelease.lua'
},
PanPresetOffset: {
LUA: 'Onyx-Pan-Preset-Offset.lua'
}
}
let Specific = {
Builder: (ScriptObj, ScriptName) => {
gulp.task('build:' + ScriptName, () => {
if (ScriptObj.Header) {
return gulp.src('./scripts/' + ScriptObj.LUA)
.pipe(replace('--##LUAHEADERINCLUDE##--', fs.readFileSync('./assets/header.lua', 'utf8') + "\n"))
.pipe(replace(ScriptObj.Header.Match, fs.readFileSync('./assets/' + ScriptObj.Header.Replace, 'utf8') + "\n"))
.pipe(gulp.dest('./dist/'))
} else {
return gulp.src('./scripts/' + ScriptObj.LUA)
.pipe(replace('--##LUAHEADERINCLUDE##--', fs.readFileSync('./assets/header.lua', 'utf8') + "\n"))
.pipe(gulp.dest('./dist/'))
}
})
},
Watcher: (ScriptObj, ScriptName) => {
gulp.task('watch:' + ScriptName, () => {
gulp.watch('./scripts/' + ScriptObj.LUA, ['build:' + ScriptName])
if (ScriptObj.Header) {
gulp.watch('./assets/' + ScriptObj.Header, ['build:' + ScriptName])
}
})
}
}
// Create Release Archive Build
gulp.task('release:zip', () => {
fs.unlink('./release/Onyx-Lua-ShowCockpit.zip', () => {
return gulp.src('./dist/**/*')
.pipe(zip('Onyx-Lua-ShowCockpit.zip'))
.pipe(gulp.dest('./release/'))
})
})
// On any modification of dist file
gulp.task('watch', () => {
gulp.watch('./scripts/**/*', ['build'])
gulp.watch('./assets/**/*', ['build'])
})
// Default task when gulp command launched
gulp.task('default', ['build', 'watch'], () => {
})
// Generic Build
gulp.task('build', () => {
for (let Script in Scripts) {
gulp.start('build:' + Script);
}
})
// Generate all specific builder and watcher per script
for (let Script in Scripts) {
Specific.Builder(Scripts[Script], Script)
Specific.Watcher(Scripts[Script], Script)
}