This repository has been archived by the owner on Jan 19, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
110 lines (89 loc) · 2.61 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
/*!
* Gruntfile for SharePoint 2013 developer bookmarklets
* Mark Bice <[email protected]>
* Habanero Consulting Group - Licensed under MIT
*/
module.exports = function (grunt) {
/**
* Load required Grunt tasks.
*/
grunt.loadNpmTasks('grunt-bookmarklet-thingy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-jshint');
/**
* Task configuration
*/
var taskConfig = {
counter: 0,
dirs: {
build: 'bin',
src: 'src'
},
files: {
src: ['<%= dirs.src %>/**/*.js']
},
pkg: grunt.file.readJSON('package.json'),
clean: {
bookmarklet: '<%= dirs.build %>/*'
},
jshint: {
src: [
'<%= dirs.src %>/*.js'
],
gruntfile: [
'Gruntfile.js'
],
options: {
ignores: ['/**/*.min.js'],
curly: true,
immed: true,
newcap: false,
noarg: true,
sub: true,
boss: true,
eqnull: true,
multistr: true,
scripturl: true,
smarttabs: true,
'-W099': true,
loopfunc: true
}
},
bookmarklet: {
generate: {
amdify: false,
timestamp: false,
jshint: false
}
}
};
grunt.initConfig(taskConfig);
/**
* Register custom task for creating our bookmarklets
*/
grunt.registerTask('createBookmarklets', function() {
var files = grunt.file.expand(grunt.config('files.src'));
for (var i = 0; i < files.length; i++) {
grunt.task.run(['incrementCurrentBookmarklet', 'bookmarklet']);
}
});
/**
* Increments a counter and sets bookmarklet config to current bookmarklet in our source array
*/
grunt.registerTask('incrementCurrentBookmarklet', '', function() {
var srcFolder = grunt.config('dirs.src'),
outFolder = grunt.config('dirs.build'),
counter = parseInt(grunt.config.get('counter')),
files = grunt.file.expand(grunt.config('files.src')),
file = files[counter];
grunt.config('bookmarklet.generate.body', file);
grunt.config('bookmarklet.generate.out', file.replace('.js', '.bookmarklet.js').replace(srcFolder, outFolder));
grunt.config('counter', counter+1);
});
grunt.registerTask('bookmark', [
'clean:bookmarklet', 'jshint', 'createBookmarklets'
]);
grunt.registerTask('default', [
'bookmark'
]);
};