Update to Grunt 0.4.0.

This commit is contained in:
Nicolas Stepien 2013-02-19 01:58:14 +01:00
parent 0d388a6b4d
commit 9bb1d61084
13 changed files with 144 additions and 168 deletions

View File

@ -15,7 +15,7 @@
// @grant GM_deleteValue
// @grant GM_openInTab
// @run-at document-start
// @updateURL https://github.com/MayhemYDG/4chan-x/raw/stable/4chan_x.meta.js
// @downloadURL https://github.com/MayhemYDG/4chan-x/raw/stable/4chan_x.user.js
// @icon https://github.com/MayhemYDG/4chan-x/raw/stable/img/icon.gif
// @updateURL https://github.com/MayhemYDG/4chan-x/raw/v3/4chan_x.meta.js
// @downloadURL https://github.com/MayhemYDG/4chan-x/raw/v3/4chan_x.user.js
// @icon data:image/gif;base64,R0lGODlhEAAQAKECAAAAAGbMM////////yH5BAEKAAIALAAAAAAQABAAAAIxlI+pq+D9DAgUoFkPDlbs7lGiI2bSVnKglnJMOL6omczxVZK3dH/41AG6Lh7i6qUoAAA7
// ==/UserScript==

View File

@ -15,12 +15,12 @@
// @grant GM_deleteValue
// @grant GM_openInTab
// @run-at document-start
// @updateURL https://github.com/MayhemYDG/4chan-x/raw/stable/4chan_x.meta.js
// @downloadURL https://github.com/MayhemYDG/4chan-x/raw/stable/4chan_x.user.js
// @updateURL https://github.com/MayhemYDG/4chan-x/raw/v3/4chan_x.meta.js
// @downloadURL https://github.com/MayhemYDG/4chan-x/raw/v3/4chan_x.user.js
// @icon data:image/gif;base64,R0lGODlhEAAQAKECAAAAAGbMM////////yH5BAEKAAIALAAAAAAQABAAAAIxlI+pq+D9DAgUoFkPDlbs7lGiI2bSVnKglnJMOL6omczxVZK3dH/41AG6Lh7i6qUoAAA7
// ==/UserScript==
/* 4chan X Alpha - Version 3.0.0 - 2013-02-18
/* 4chan X Alpha - Version 3.0.0 - 2013-02-19
* http://mayhemydg.github.com/4chan-x/
*
* Copyright (c) 2009-2011 James Campos <james.r.campos@gmail.com>
@ -188,7 +188,7 @@
g = {
VERSION: '3.0.0',
NAMESPACE: "4chan_X_Alpha.",
NAMESPACE: "4chan X Alpha.",
boards: {},
threads: {},
posts: {}

View File

@ -18,7 +18,7 @@ Open your console with:
- Clone 4chan X.
- `cd` into it.
- Install [node.js](http://nodejs.org/).
- Install [Grunt](http://gruntjs.com/) with `npm install -g grunt`.
- Install [Grunt's CLI](http://gruntjs.com/) with `npm install -g grunt-cli`.
- Install 4chan X dependencies with `npm install`.
### Build

90
Gruntfile.js Normal file
View File

@ -0,0 +1,90 @@
module.exports = function(grunt) {
var pkg = grunt.file.readJSON('package.json');
// Project configuration.
grunt.initConfig({
pkg: pkg,
concat: {
coffee: {
options: { process: { data: pkg } },
src: [
'src/config.coffee',
'src/globals.coffee',
'lib/ui.coffee',
'lib/$.coffee',
'lib/polyfill.coffee',
'src/features.coffee',
'src/qr.coffee',
'src/main.coffee'
],
dest: 'tmp/script.coffee'
},
script: {
options: { process: { data: pkg } },
src: [
'src/metadata.js',
'src/banner.js',
'tmp/script.js'
],
dest: '<%= pkg.meta.files.userjs %>'
},
metadata: {
options: { process: { data: pkg } },
src: 'src/metadata.js',
dest: '<%= pkg.meta.files.metajs %>'
}
},
coffee: {
script: {
src: 'tmp/script.coffee',
dest: 'tmp/script.js'
}
},
exec: {
commit: {
command: function() {
var release = pkg.meta.name + ' v' + pkg.version;
return [
'git checkout ' + pkg.meta.mainBranch,
'git commit -am "Release ' + release + '."',
'git tag -a ' + pkg.version + ' -m "' + release + '."',
'git tag -af stable -m "' + release + '."'
].join(' && ');
},
stdout: true
},
push: {
command: 'git push && git push --tags',
stdout: true
}
},
watch: {
files: [
'package.json',
'lib/**/*.coffee',
'src/**/*.coffee',
'src/**/*.js',
'css/**/*.css',
'img/*'
],
tasks: 'default'
},
clean: {
tmp: 'tmp'
}
});
// grunt.loadNpmTasks('grunt-bump');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-exec');
grunt.registerTask('default', ['concat:coffee', 'coffee:script', 'concat:script', 'concat:metadata', 'clean']);
grunt.registerTask('release', ['default', 'exec:commit', 'exec:push']);
// grunt.registerTask('patch', 'bump');
// grunt.registerTask('upgrade', 'bump:minor');
};

103
grunt.js
View File

@ -1,103 +0,0 @@
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: '<json:package.json>',
meta: {
name: '<%= pkg.name.replace(/-/g, " ") %>',
repo: 'https://github.com/MayhemYDG/4chan-x/',
files: {
metajs: '4chan_x.meta.js',
userjs: '4chan_x.user.js',
latestjs: 'latestv3.js'
}
},
concat: {
coffee: {
src: [
'<file_template:src/config.coffee>',
'<file_template:src/globals.coffee>',
'<file_template:lib/ui.coffee>',
'<file_template:lib/$.coffee>',
'<file_template:lib/polyfill.coffee>',
'<file_template:src/features.coffee>',
'<file_template:src/qr.coffee>',
'<file_template:src/main.coffee>'
],
dest: 'tmp/script.coffee'
},
script: {
src: ['<file_template:src/metadata.js>', '<file_template:src/banner.js>', 'tmp/script.js'],
dest: '<config:meta.files.userjs>'
},
meta: {
src: '<file_template:src/metadata.js>',
dest: '<config:meta.files.metajs>'
},
latest: {
src: '<file_template:src/latest.js>',
dest: '<config:meta.files.latestjs>'
}
},
coffee: {
script: {
src: 'tmp/script.coffee',
dest: 'tmp/script.js'
}
},
exec: {
commit: {
command: function(grunt) {
var name, release, version;
name = grunt.config(['pkg', 'name']).replace(/-/g, ' ');
version = grunt.config(['pkg', 'version']);
release = name + ' v' + version;
return [
'git checkout master',
'git commit -am "Release ' + release + '."',
'git tag -a ' + version + ' -m "' + release + '"',
'git tag -af stable -m "' + release + '"'
].join(' && ');
},
stdout: true
},
push: {
command: 'git push && git push --tags',
stdout: true
}
},
watch: {
files: [
'grunt.js',
'lib/**/*.coffee',
'src/**/*.coffee',
'src/**/*.js',
'css/**/*.css',
'img/*'
],
tasks: 'default'
},
clean: {
tmp:['tmp']
},
qunit: {
all: 'http://localhost:8000/test/index.html'
},
server: {
port: 8000,
base: '.'
}
});
grunt.loadNpmTasks('grunt-bump');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-exec');
grunt.registerTask('default', 'concat:coffee coffee:script concat:script clean');
grunt.registerTask('release', 'concat:meta concat:latest default exec:commit exec:push');
grunt.registerTask('patch', 'bump');
grunt.registerTask('upgrade', 'bump:minor');
grunt.registerTask('test', 'default server qunit');
};

View File

@ -1 +0,0 @@
document.dispatchEvent(new CustomEvent("4chanXAlphaVersion",{detail:{v:"3.0.0"}}))

View File

@ -1,24 +1,34 @@
{
"name": "4chan-X-Alpha",
"name": "4chan-X",
"version": "3.0.0",
"author": "Nicolas Stepien <stepien.nicolas@gmail.com>",
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"scripts": {
"test": "grunt test"
"meta": {
"name": "4chan X Alpha",
"repo": "https://github.com/MayhemYDG/4chan-x/",
"page": "http://mayhemydg.github.com/4chan-x/",
"mainBranch": "v3",
"files": {
"metajs": "4chan_x.meta.js",
"userjs": "4chan_x.user.js",
"latestjs": "latestv3.js"
}
},
"devDependencies": {
"grunt": "~0.4.0",
"grunt-bump": "~0.0.x",
"grunt-contrib-clean": "~0.4.0",
"grunt-contrib-coffee": "~0.4.0",
"grunt-contrib-concat": "~0.1.2",
"grunt-contrib-watch": "~0.2.0",
"grunt-exec": "~0.4.0"
},
"repository": {
"type": "git",
"url": "https://github.com/MayhemYDG/4chan-x.git"
},
"devDependencies": {
"grunt": "0.3.x",
"grunt-bump": "0.0.x",
"grunt-contrib-clean": "0.3.x",
"grunt-contrib-coffee": "0.3.x",
"grunt-exec": "0.3.x",
"qunitjs": "1.x.x"
"url": "git://github.com/MayhemYDG/4chan-x.git"
},
"author": "Nicolas Stepien <stepien.nicolas@gmail.com>",
"license": "MIT",
"readmeFilename": "README.md",
"engines": {
"node": ">=0.8"
}

View File

@ -1,5 +1,5 @@
/* <%= meta.name %> - Version <%= pkg.version %> - <%= grunt.template.today('yyyy-mm-dd') %>
* http://mayhemydg.github.com/4chan-x/
/* <%= meta.name %> - Version <%= version %> - <%= grunt.template.today('yyyy-mm-dd') %>
* <%= meta.page %>
*
* Copyright (c) 2009-2011 James Campos <james.r.campos@gmail.com>
* Copyright (c) 2012-<%= grunt.template.today('yyyy') %> Nicolas Stepien <stepien.nicolas@gmail.com>

View File

@ -2910,25 +2910,25 @@ Favicon =
switch: ->
switch Conf['favicon']
when 'ferongr'
Favicon.unreadDead = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadDead.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadSFW.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadNSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadNSFW.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadDead = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadDead.gif", {encoding: "base64"}) %>'
Favicon.unreadSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadSFW.gif", {encoding: "base64"}) %>'
Favicon.unreadNSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/ferongr/unreadNSFW.gif", {encoding: "base64"}) %>'
when 'xat-'
Favicon.unreadDead = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadDead.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadSFW.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadNSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadNSFW.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadDead = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/xat-/unreadNSFW.png", {encoding: "base64"}) %>'
when 'Mayhem'
Favicon.unreadDead = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadDead.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadSFW.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadNSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadNSFW.png", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadDead = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadDead.png", {encoding: "base64"}) %>'
Favicon.unreadSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadSFW.png", {encoding: "base64"}) %>'
Favicon.unreadNSFW = 'data:image/png;base64,<%= grunt.file.read("img/favicons/Mayhem/unreadNSFW.png", {encoding: "base64"}) %>'
when 'Original'
Favicon.unreadDead = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadDead.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadSFW.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadNSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadNSFW.gif", {encoding: "base64"}).toString("base64") %>'
Favicon.unreadDead = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadDead.gif", {encoding: "base64"}) %>'
Favicon.unreadSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadSFW.gif", {encoding: "base64"}) %>'
Favicon.unreadNSFW = 'data:image/gif;base64,<%= grunt.file.read("img/favicons/Original/unreadNSFW.gif", {encoding: "base64"}) %>'
Favicon.unread = if Favicon.SFW then Favicon.unreadSFW else Favicon.unreadNSFW
empty: 'data:image/gif;base64,<%= grunt.file.read("img/favicons/empty.gif", {encoding: "base64"}).toString("base64") %>'
dead: 'data:image/gif;base64,<%= grunt.file.read("img/favicons/dead.gif", {encoding: "base64"}).toString("base64") %>'
empty: 'data:image/gif;base64,<%= grunt.file.read("img/favicons/empty.gif", {encoding: "base64"}) %>'
dead: 'data:image/gif;base64,<%= grunt.file.read("img/favicons/dead.gif", {encoding: "base64"}) %>'
ThreadStats =
@ -3032,7 +3032,7 @@ ThreadUpdater =
http://freesound.org/people/pierrecartoons1979/sounds/90112/
cc-by-nc-3.0
###
beep: 'data:audio/wav;base64,<%= grunt.file.read("audio/beep.wav", {encoding: "base64"}).toString("base64") %>'
beep: 'data:audio/wav;base64,<%= grunt.file.read("audio/beep.wav", {encoding: "base64"}) %>'
cb:
online: ->

View File

@ -6,8 +6,8 @@ Conf = {}
d = document
doc = d.documentElement
g =
VERSION: '<%= pkg.version %>'
NAMESPACE: "<%= pkg.name.replace(/-/g, '_') %>."
VERSION: '<%= version %>'
NAMESPACE: "<%= meta.name %>."
boards: {}
threads: {}
posts: {}

View File

@ -1 +0,0 @@
document.dispatchEvent(new CustomEvent("<%= pkg.name.replace(/-/g, '') %>Version",{detail:{v:"<%= pkg.version %>"}}))

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name <%= meta.name %>
// @version <%= pkg.version %>
// @version <%= version %>
// @description Cross-browser userscript for maximum lurking on 4chan.
// @copyright 2009-2011 James Campos <james.r.campos@gmail.com>
// @copyright 2012-<%= grunt.template.today('yyyy') %> Nicolas Stepien <stepien.nicolas@gmail.com>
@ -15,7 +15,7 @@
// @grant GM_deleteValue
// @grant GM_openInTab
// @run-at document-start
// @updateURL <%= meta.repo %>raw/stable/<%= meta.files.metajs %>
// @downloadURL <%= meta.repo %>raw/stable/<%= meta.files.userjs %>
// @icon data:image/gif;base64,<%= grunt.file.read('img/icon.gif', {encoding: 'base64'}).toString('base64') %>
// @updateURL <%= meta.repo %>raw/<%= meta.mainBranch %>/<%= meta.files.metajs %>
// @downloadURL <%= meta.repo %>raw/<%= meta.mainBranch %>/<%= meta.files.userjs %>
// @icon data:image/gif;base64,<%= grunt.file.read('img/icon.gif', {encoding: 'base64'}) %>
// ==/UserScript==

View File

@ -1,19 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>QUnit</title>
<link rel='stylesheet' href='../node_modules/qunitjs/qunit/qunit.css'>
</head>
<body>
<div id='qunit'></div>
<script src='../node_modules/qunitjs/qunit/qunit.js'></script>
<script src='../4chan_x.user.js'></script>
<script>
module('test module');
test('test', function() {
ok(true, 'Passed!');
});
</script>
</body>
</html>