-
Notifications
You must be signed in to change notification settings - Fork 1
/
Gruntfile.js
97 lines (82 loc) · 3.33 KB
/
Gruntfile.js
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
89
90
91
92
93
94
95
96
97
module.exports = function(grunt) {
require('dotenv').config();
grunt.loadNpmTasks('grunt-screeps')
grunt.loadNpmTasks('grunt-contrib-clean')
grunt.loadNpmTasks('grunt-contrib-copy')
grunt.initConfig({
screeps: {
options: {
email: process.env.EMAIL,
token: process.env.TOKEN,
branch: process.env.BRANCH,
},
dist: {
src: ['dist/*.js']
}
},
clean: {
'dist': ['dist/*.js']
},
copy: {
screeps: {
files: [{
expand: true,
cwd: 'src/',
src: '**',
dest: 'dist/',
filter: 'isFile',
rename: function (dest, src) {
return dest + src.replace(/\//g,'.');
},
}],
options: {
// OMG, I am a shitcoder
process: function (content, srcpath) {
let requiresIterator = content.matchAll(/require\(.*\)/g)
let requires = []
for (let piece of requiresIterator) {
requires.push(piece.toString())
}
let files = []
for (let req of requires) {
let file = req
.replace("require(", '')
.replace(")", '')
.replaceAll('"', '')
.replaceAll('\'', '')
.replaceAll('./', '')
files.push(file)
}
let pathArray = srcpath.split('/')
pathArray.splice(0, 1)
pathArray.splice(pathArray.length - 1, 1)
let newFiles = []
for (let file of files) {
let specificPathArray = [...pathArray]
while (file !== file.replace('.', '')) {
specificPathArray.splice(specificPathArray.length - 1, 1)
file = file.replace('.', '')
}
let newFile = ''
if (specificPathArray.length !== 0) {
newFile += specificPathArray.join('/') + '/'
}
newFile += file
newFiles.push(newFile)
}
let newRequires = []
for (let newFile of newFiles) {
newRequires.push("require('./" + newFile.replaceAll('/', '.') + "')")
}
for (let i = 0; i < requires.length; i++) {
content = content.replace(requires[i], newRequires[i])
}
return content
},
},
}
},
})
grunt.registerTask('default', ['clean', 'copy:screeps', 'screeps', 'clean']);
grunt.registerTask('scopy', ['clean', 'copy:screeps']);
}