-
Notifications
You must be signed in to change notification settings - Fork 2
/
Gruntfile.js
124 lines (115 loc) · 3.32 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
module.exports = grunt => {
const DEV_PATH = "/home/foundry/foundrydata/Data/systems/mythic/";
const RELEASE_DIR = "/home/tab/Documents";
const RELEASE_PATH = RELEASE_DIR + "/mythic";
const RELEASE_TASKS = [
"shell:compile_packs",
"less",
"copy:release",
"uglify",
"compress",
"copy:manifest",
"clean"
];
// Configuration
grunt.initConfig({
// grunt-contrib-clean
clean: {
options: { force: true },
src: [ RELEASE_PATH ]
},
// grunt-contrib-compress
compress: {
main: {
options: {
archive: RELEASE_DIR + "/mythic.zip",
pretty: true
},
files: [{
expand: true,
cwd: RELEASE_PATH,
src: "**/*",
dest: "/mythic"
}]
}
},
// grunt-contrib-copy
copy: {
dev: {
files: [
{ expand: true, src: "lang/*", dest: DEV_PATH },
{ expand: true, src: "mythic.css", dest: DEV_PATH },
{ expand: true, src: "system.json", dest: DEV_PATH },
{ expand: true, src: "template.json", dest: DEV_PATH },
{ expand: true, src: "module/**", dest: DEV_PATH },
{ expand: true, src: "packs/**", dest: DEV_PATH },
{ expand: true, src: "templates/**", dest: DEV_PATH },
{ expand: true, src: "mythic.js", dest: DEV_PATH }
]
},
manifest: {
files: [
{ expand: true, src: "system.json", dest: RELEASE_DIR }
]
},
release: {
files: [
{ expand: true, src: "lang/*", dest: RELEASE_PATH },
{ expand: true, src: "packs/*", dest: RELEASE_PATH },
{ expand: true, src: "templates/**", dest: RELEASE_PATH },
{ expand: true, src: "CHANGELOG.md", dest: RELEASE_PATH },
{ expand: true, src: "LICENSE.txt", dest: RELEASE_PATH },
{ expand: true, src: "mythic.css", dest: RELEASE_PATH },
{ expand: true, src: "README.md", dest: RELEASE_PATH },
{ expand: true, src: "system.json", dest: RELEASE_PATH },
{ expand: true, src: "template.json", dest: RELEASE_PATH }
]
}
},
// grunt-contrib-less
less:{
main: {
options: {
paths: [ "less/" ],
compress: true
},
files: {
"mythic.css": "less/mythic.less"
}
}
},
// grunt-contrib-uglify
uglify: {
main: {
files: [
{ expand: true, src: "module/**/*.js", dest: RELEASE_PATH },
{ expand: true, src: "mythic.js", dest: RELEASE_PATH }
]
}
},
// grunt-contrib-watch
watch: {
peep: {
files: "*",
tasks: [ "default" ]
}
},
// grunt-shell
shell: {
compile_packs: {
command: "cd domain/ && stack build --fast && stack exec domain-exe"
}
}
});
// Load plugins
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-shell');
// Tasks
grunt.registerTask('default', [ "less", "copy:dev" ]);
grunt.registerTask('release', RELEASE_TASKS);
};