Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
240a14da58 | ||
|
|
c441d75529 | ||
|
|
1bc89c1c89 | ||
|
|
43202e9917 | ||
|
|
05bc1a271d | ||
|
|
da1419d6b6 | ||
|
|
841fac38d3 | ||
|
|
2b8e23b32f | ||
|
|
5eae2bb488 | ||
|
|
6fa18c764b | ||
|
|
c9796a142d | ||
|
|
0718590f56 | ||
|
|
51f566ebf1 | ||
|
|
d2d904be7f | ||
|
|
088994f366 | ||
|
|
184b64a6af | ||
|
|
4aca035709 | ||
|
|
ebf3443e96 | ||
|
|
fd5372b35d | ||
|
|
f464558cd2 | ||
|
|
e7cd3f0549 | ||
|
|
545408a7e7 | ||
|
|
83156c30c7 | ||
|
|
636a8d061c | ||
|
|
2dbda99986 | ||
|
|
7d83552013 | ||
|
|
35bb12de6a | ||
|
|
1d1772e961 | ||
|
|
6787063ac7 | ||
|
|
9e09b8d87c | ||
|
|
2c77972073 | ||
|
|
31f4594928 | ||
|
|
eb9ac15de8 | ||
|
|
e922f3c5cc | ||
|
|
a8d08b93c5 | ||
|
|
64e118a2c8 | ||
|
|
6671541dcb | ||
|
|
962165dc8e | ||
|
|
f9b65dd892 | ||
|
|
979586d9d3 | ||
|
|
c522e60e28 | ||
|
|
f9cd38947d | ||
|
|
99b6cf2861 | ||
|
|
d925a17940 | ||
|
|
a2bbdf4645 | ||
|
|
93c98e16ac | ||
|
|
88e57b1200 | ||
|
|
1e96cf2d6c | ||
|
|
ccaf8e9842 | ||
|
|
e1f8282049 | ||
|
|
d873c4b7f1 | ||
|
|
3529bccf3a | ||
|
|
29315f03f7 | ||
|
|
5877a3234f | ||
|
|
6650413e59 | ||
|
|
197d7b1e1b | ||
|
|
cdb2989c0a | ||
|
|
76ae358878 | ||
|
|
d47f174848 | ||
|
|
59cc962cc0 | ||
|
|
6a98afa9f2 | ||
|
|
b6d17f985f | ||
|
|
f7fdf71d63 | ||
|
|
a9bf0d1468 | ||
|
|
8bb25cd09a | ||
|
|
2f6af50d4b | ||
|
|
f70dd4a562 | ||
|
|
36a2f47686 | ||
|
|
302050583e | ||
|
|
2e4418d16a | ||
|
|
eef91c4ff7 | ||
|
|
c4cd06b59e | ||
|
|
96db9a07e9 | ||
|
|
ffdfe33b83 | ||
|
|
1f380f981e | ||
|
|
a45082d276 | ||
|
|
8bf15e2224 | ||
|
|
b4714dace1 | ||
|
|
d18cbb407a | ||
|
|
2cc3d04be2 | ||
|
|
e59b541b1b | ||
|
|
7b1930ef5c | ||
|
|
536ff55bd5 | ||
|
|
39ceaa9223 | ||
|
|
c91e0a6019 | ||
|
|
150b9ae0e3 | ||
|
|
c608ad4218 | ||
|
|
fce0f45104 | ||
|
|
2f1793e62a | ||
|
|
1397998ab0 | ||
|
|
a54b57514e | ||
|
|
aa1589f23b | ||
|
|
d3f78e9349 | ||
|
|
a73850897f | ||
|
|
5895ac6d30 | ||
|
|
d69585facd |
@@ -1,9 +1,10 @@
|
||||
*.log
|
||||
.DS_Store
|
||||
.sass-cache
|
||||
.tm_properties
|
||||
aws.config
|
||||
build
|
||||
deploy
|
||||
dist
|
||||
node_modules
|
||||
src/coffee/views.js
|
||||
templates.js
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2.2.0
|
||||
@@ -1,62 +1,101 @@
|
||||
###
|
||||
#
|
||||
# Crafting Guide - Gruntfile.coffee
|
||||
#
|
||||
# Copyright (c) 2014 by Redwood Labs
|
||||
# Copyright © 2014-2016 by Redwood Labs
|
||||
# All rights reserved.
|
||||
###
|
||||
#
|
||||
|
||||
fs = require 'fs'
|
||||
util = require 'util'
|
||||
fs = require 'fs'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
LIBRARY_ALIAS_MAPPING = [
|
||||
'./node_modules/backbone/backbone.js:backbone'
|
||||
'./node_modules/jade/runtime.js:jade'
|
||||
'./node_modules/jquery/dist/jquery.js:jquery'
|
||||
'./node_modules/underscore/underscore.js:underscore'
|
||||
'./node_modules/when/when.js:when'
|
||||
EXTERNAL_LIBS = [
|
||||
'backbone'
|
||||
'jquery'
|
||||
'marked'
|
||||
'underscore'
|
||||
'underscore.inflections'
|
||||
'when'
|
||||
'./vendor/email.js:emailjs'
|
||||
]
|
||||
|
||||
LIBRARIES = (s.substring(0, s.indexOf(':')) for s in LIBRARY_ALIAS_MAPPING)
|
||||
ALIASES = (s.substring(s.indexOf(':') + 1) for s in LIBRARY_ALIAS_MAPPING)
|
||||
PUBLISHED_FILES = [
|
||||
'./client/models/base_model.coffee'
|
||||
'./client/models/game/inventory.coffee'
|
||||
'./client/models/game/item.coffee'
|
||||
'./client/models/game/item_slug.coffee'
|
||||
'./client/models/game/mod.coffee'
|
||||
'./client/models/game/mod_version.coffee'
|
||||
'./client/models/game/multiblock.coffee'
|
||||
'./client/models/game/recipe.coffee'
|
||||
'./client/models/game/stack.coffee'
|
||||
'./client/models/game/simple_stack.coffee'
|
||||
'./client/models/parsing/command_parser_version_base.coffee'
|
||||
'./client/models/parsing/mod_parser.coffee'
|
||||
'./client/models/parsing/mod_parser_v1.coffee'
|
||||
'./client/models/parsing/mod_version_parser.coffee'
|
||||
'./client/models/parsing/mod_version_parser_v1.coffee'
|
||||
'./client/models/parsing/versioned_parser_base.coffee'
|
||||
'./client/models/site/tutorial.coffee'
|
||||
'./common/constants.coffee'
|
||||
'./common/underscore.coffee'
|
||||
'./index.coffee'
|
||||
]
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = (grunt)->
|
||||
|
||||
grunt.loadTasks tasks for tasks in grunt.file.expand './node_modules/grunt-*/tasks'
|
||||
|
||||
grunt.config.init
|
||||
browserify:
|
||||
dev:
|
||||
|
||||
compress:
|
||||
static:
|
||||
options:
|
||||
browserifyOptions:
|
||||
debug: true
|
||||
extensions: ['.coffee']
|
||||
transform: ['coffeeify']
|
||||
files: './dist/js/main.js': ['./src/coffee/main.coffee']
|
||||
prod:
|
||||
options:
|
||||
browserifyOptions:
|
||||
extensions: ['.coffee']
|
||||
transform: ['coffeeify']
|
||||
files: './dist/js/main.js': ['./src/coffee/main.coffee']
|
||||
mode: 'gzip'
|
||||
files: [
|
||||
{expand: true, cwd:'./build/static', src:'**/*.css', dest:'./dist/'}
|
||||
{expand: true, cwd:'./build/static', src:['**/*.html', '!**/index.html'], dest:'./dist/'}
|
||||
{expand: true, cwd:'./build/static', src:'**/*.ugly.js', dest:'./dist/', ext: '.js'}
|
||||
{expand: true, cwd:'./build/static', src:'**/*.json', dest:'./dist/'}
|
||||
{expand: true, cwd:'./build/static', src:'**/*.ttf', dest:'./dist/'}
|
||||
{expand: true, cwd:'./build/static', src:'**/*.txt', dest:'./dist/'}
|
||||
]
|
||||
|
||||
coffee:
|
||||
dev:
|
||||
options:
|
||||
sourceMap: true
|
||||
files: [expand:true, cwd:'./src/coffee', src:'**/*.coffee', dest:'./dist', ext:'.js']
|
||||
|
||||
clean:
|
||||
dist: ['./dist']
|
||||
npm_package:
|
||||
options: {
|
||||
bare: true
|
||||
}
|
||||
files: [
|
||||
{expand:true, cwd:'./src', src:PUBLISHED_FILES, dest:'./dist', ext:'.js'}
|
||||
]
|
||||
|
||||
copy:
|
||||
styles:
|
||||
files: [expand:true, cwd:'./src/css', src:'**/*.scss', dest:'./dist/src/css']
|
||||
assets_build:
|
||||
files: [
|
||||
{expand:true, cwd:'./assets/', src:'**/*', dest:'./build/static'}
|
||||
]
|
||||
build_to_dist:
|
||||
files: [
|
||||
expand: true
|
||||
cwd: './build/static/'
|
||||
src: ['**/*', '!**/*.map', '!**/*.js', '!index.html']
|
||||
dest: './dist'
|
||||
]
|
||||
common_source:
|
||||
files: [
|
||||
{expand:true, cwd:'./src/common', src:'**/*.coffee', dest:'./build', ext:'.coffee'}
|
||||
]
|
||||
server_source:
|
||||
files: [
|
||||
{expand:true, cwd:'./src/server', src:'**/*.coffee', dest:'./build', ext:'.coffee'}
|
||||
]
|
||||
|
||||
exorcise:
|
||||
dev:
|
||||
files: './dist/js/main.js.map': ['./dist/js/main.js']
|
||||
clean:
|
||||
assets: ['./build/static/data', './build/static/images']
|
||||
build: ['./build']
|
||||
dist: ['./dist']
|
||||
templates: ['./src/client/site/templates.js']
|
||||
|
||||
jade:
|
||||
pages:
|
||||
@@ -64,23 +103,26 @@ module.exports = (grunt)->
|
||||
pretty: true
|
||||
files: [
|
||||
expand: true
|
||||
cwd: './src/jade'
|
||||
src: '*.jade'
|
||||
dest: './dist'
|
||||
ext: '.html'
|
||||
cwd: './src/client/site'
|
||||
src: '**/index.jade'
|
||||
dest: './build/static'
|
||||
ext: '.html'
|
||||
]
|
||||
|
||||
templates:
|
||||
options:
|
||||
client: true
|
||||
node: true
|
||||
processName: (f)->
|
||||
f = f.replace './src/jade/templates/', ''
|
||||
f = f.replace '.jade', ''
|
||||
f = f.replace /\//g, '_'
|
||||
return f
|
||||
processName: (path)->
|
||||
pathElements = path.split '\/'
|
||||
while true
|
||||
element = pathElements.shift()
|
||||
break if element is 'site'
|
||||
pathElements.pop()
|
||||
name = pathElements.join '/'
|
||||
name = name.replace '.jade', ''
|
||||
return name
|
||||
files:
|
||||
'./src/coffee/views.js': ['./src/jade/templates/**/*.jade']
|
||||
'./src/client/site/templates.js': ['./src/client/site/**/!(index)*.jade']
|
||||
|
||||
mochaTest:
|
||||
options:
|
||||
@@ -89,28 +131,25 @@ module.exports = (grunt)->
|
||||
reporter: 'dot'
|
||||
require: [
|
||||
'coffee-script/register'
|
||||
'./test/test_helper.coffee'
|
||||
'./src/test_helper.coffee'
|
||||
]
|
||||
verbose: true
|
||||
src: ['./test/**/*.test.coffee']
|
||||
|
||||
rsync:
|
||||
static:
|
||||
options:
|
||||
src: './static/'
|
||||
dest: './dist/'
|
||||
recursive: true
|
||||
src: ['./src/**/*.test.coffee']
|
||||
|
||||
sass:
|
||||
build:
|
||||
files:
|
||||
'./dist/css/main.css': ['./src/scss/main.scss']
|
||||
dist:
|
||||
all:
|
||||
options:
|
||||
sourcemap: 'none'
|
||||
style: 'compressed'
|
||||
files:
|
||||
'./dist/css/main.css': ['./src/scss/main.scss']
|
||||
'./build/static/main.css': [ './build/imports.scss' ]
|
||||
|
||||
sass_globbing:
|
||||
all:
|
||||
files:
|
||||
'./build/imports.scss': [
|
||||
'./src/client/styles/main.scss'
|
||||
'./src/client/site/**/*.scss'
|
||||
]
|
||||
|
||||
uglify:
|
||||
scripts:
|
||||
@@ -118,46 +157,153 @@ module.exports = (grunt)->
|
||||
maxLineLen: 20
|
||||
files: [
|
||||
expand: true
|
||||
cwd: './dist/js'
|
||||
src: '**/*.js'
|
||||
dest: './dist/js'
|
||||
cwd: './build/static'
|
||||
src: '**/*.js'
|
||||
dest: './build/static'
|
||||
ext: '.ugly.js'
|
||||
]
|
||||
|
||||
watch:
|
||||
static:
|
||||
files: ['./static/**/*']
|
||||
tasks: ['rsync:static']
|
||||
coffee:
|
||||
files: ['./src/**/*.coffee', './src/**/*.js']
|
||||
tasks: ['browserify:dev', 'exorcise']
|
||||
jade:
|
||||
files: ['./src/**/*.jade']
|
||||
tasks: ['jade:pages', 'jade:templates']
|
||||
assets:
|
||||
files: ['./assets/**/*']
|
||||
tasks: ['copy:assets_build']
|
||||
client_source:
|
||||
files: ['./src/{client,common}/**/*.coffee']
|
||||
tasks: ['browserify:internal']
|
||||
server_source:
|
||||
files: ['./src/{common,server}/**/*.coffee']
|
||||
tasks: ['copy:server_source']
|
||||
jade_pages:
|
||||
files: ['./src/**/index.jade']
|
||||
tasks: ['jade:pages']
|
||||
jade_templates:
|
||||
files: ['./src/**/!(index).jade']
|
||||
tasks: ['jade:templates', 'browserify:internal']
|
||||
sass:
|
||||
files: ['./src/**/*.scss']
|
||||
tasks: ['sass', 'copy:styles']
|
||||
tasks: ['sass']
|
||||
test:
|
||||
files: ['./src/**/*.coffee', './src/**/*.js', './test/**/*.coffee']
|
||||
tasks: ['test']
|
||||
tasks: ['script:clear', 'test']
|
||||
|
||||
grunt.registerTask 'default', 'build'
|
||||
# Compound Tasks ###################################################################################################
|
||||
|
||||
grunt.registerTask 'build', ['rsync', 'sass:build', 'jade', 'copy', 'browserify:dev', 'exorcise']
|
||||
grunt.registerTask 'build', 'build the project to be run from a local server',
|
||||
['jade', 'build:copy', 'build:css', 'browserify:external', 'browserify:internal']
|
||||
|
||||
grunt.registerTask 'dist', ['rsync', 'sass:dist', 'jade', 'copy', 'browserify:prod', 'uglify']
|
||||
grunt.registerTask 'build:copy', 'helper task for build',
|
||||
['copy:assets_build', 'copy:common_source', 'copy:server_source']
|
||||
|
||||
grunt.registerTask 'prepublish', ['clean', 'coffee']
|
||||
grunt.registerTask 'build:css', 'helper task for build',
|
||||
['sass_globbing', 'sass']
|
||||
|
||||
grunt.registerTask 'use-local-deps', ->
|
||||
grunt.file.mkdir './node_modules'
|
||||
grunt.file.delete './node_modules/crafting-guide-common', force:true
|
||||
fs.symlinkSync '../../crafting-guide-common/', './node_modules/crafting-guide-common'
|
||||
grunt.registerTask 'default', 'rebuild the project from scratch and start a local HTTP server',
|
||||
['clean', 'start']
|
||||
|
||||
grunt.registerTask 'test', ['mochaTest']
|
||||
grunt.registerTask 'deploy', 'deploy to both staging and production via CircleCI',
|
||||
['deploy:staging', 'deploy:prod']
|
||||
|
||||
grunt.registerTask 'watch-dev', ['clean', 'build', 'watch']
|
||||
grunt.registerTask 'deploy:prod', 'deploy the project to production via CircleCI',
|
||||
['script:deploy:prod']
|
||||
|
||||
grunt.registerTask 'watch-test', ['clean', 'build', 'watch:test']
|
||||
grunt.registerTask 'deploy:staging', 'deploy the project to staging via CircleCI',
|
||||
['script:deploy:staging']
|
||||
|
||||
grunt.registerTask 'dist', 'build the project to be run from Amazon S3',
|
||||
['build', 'copy:build_to_dist', 'uglify', 'compress']
|
||||
|
||||
grunt.registerTask 'prepublish', 'build the project to be published to NPM as shared code',
|
||||
['clean', 'coffee']
|
||||
|
||||
grunt.registerTask 'publish', 'publish the project to NPM',
|
||||
['prepublish', 'script:publish', 'clean', 'build']
|
||||
|
||||
grunt.registerTask 'start', 'build the project and start a local HTTP server',
|
||||
['build', 'script:start']
|
||||
|
||||
grunt.registerTask 'test', 'run unit tests',
|
||||
['mochaTest']
|
||||
|
||||
grunt.registerTask 'upload:prod', 'upload the project to the production Amazon S3 environment',
|
||||
['dist', 'script:s3_upload:prod']
|
||||
|
||||
grunt.registerTask 'upload:staging', 'upload the project the staging Amazon S3 environment',
|
||||
['dist', 'script:s3_upload:staging']
|
||||
|
||||
grunt.registerTask 'useLocalDeps', 'use local dependencies instead of NPM dependencies',
|
||||
['script:use_local_deps']
|
||||
|
||||
# Code Tasks #######################################################################################################
|
||||
|
||||
grunt.registerTask 'browserify:external', "Bundle 3rd-party libraries used in the app", ->
|
||||
grunt.file.mkdir './build/static'
|
||||
done = this.async()
|
||||
|
||||
args = [].concat ("--require=#{lib}" for lib in EXTERNAL_LIBS), [
|
||||
'--outfile=./build/static/external.js'
|
||||
]
|
||||
|
||||
options = cmd:'browserify', args:args
|
||||
grunt.util.spawn options, (error)->
|
||||
console.log error if error?
|
||||
done()
|
||||
|
||||
grunt.registerTask 'browserify:internal', "Bundle source files needed in the browser", ->
|
||||
grunt.file.mkdir './build/static'
|
||||
done = this.async()
|
||||
|
||||
libs = []
|
||||
for lib in EXTERNAL_LIBS
|
||||
parts = lib.split ':'
|
||||
libs.push parts[parts.length-1]
|
||||
|
||||
args = [].concat ("--external=#{lib}" for lib in libs), [
|
||||
'--extension=.coffee'
|
||||
'--outfile=./build/static/internal.js'
|
||||
'--transform=coffeeify'
|
||||
'./src/client/client.coffee'
|
||||
]
|
||||
|
||||
options = cmd:'browserify', args:args
|
||||
grunt.util.spawn options, (error)->
|
||||
console.log error if error?
|
||||
done()
|
||||
|
||||
# Script Tasks #####################################################################################################
|
||||
|
||||
grunt.registerTask 'script:clear', "clear the current terminal buffer", ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'clear', opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:deploy:prod', "deploy code by copying to the production branch", ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/deploy', args:['--prod'], opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:deploy:staging', "deploy code by copying to the staging branch", ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/deploy', args:['--staging'], opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:publish', 'publishes this package to NPM', ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/publish', opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:s3_upload:prod', 'uploads all static content to S3', ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/s3_upload', args:['--prod'], opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:s3_upload:staging', 'uploads all static content to S3', ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/s3_upload', args:['--staging'], opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:start', "start a local HTTP server on port 8080", ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/start', opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
grunt.registerTask 'script:use_local_deps', "use local dependencies instead of NPM dependencies", ->
|
||||
done = this.async()
|
||||
grunt.util.spawn cmd:'./scripts/use_local_deps', opts:{stdio:'inherit'}, (error)-> done(error)
|
||||
|
||||
# Command-Line Argument Processing #################################################################################
|
||||
|
||||
args = process.argv[..]
|
||||
while args.length > 0
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 335 B |
|
After Width: | Height: | Size: 957 B |
|
After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 206 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 801 B After Width: | Height: | Size: 801 B |
|
Before Width: | Height: | Size: 860 B After Width: | Height: | Size: 860 B |
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 300 B |
@@ -1,12 +1,15 @@
|
||||
dependencies:
|
||||
pre:
|
||||
- gem install sass --version ">= 3.4"
|
||||
- gem install sass --version "= 3.4"
|
||||
- sudo -H pip install s3cmd
|
||||
- npm install -g browserify
|
||||
- npm install -g grunt-cli
|
||||
deployment:
|
||||
staging:
|
||||
branch: master
|
||||
branch: staging
|
||||
commands:
|
||||
- ./scripts/deploy --staging
|
||||
- grunt upload:staging
|
||||
production:
|
||||
branch: production
|
||||
commands:
|
||||
- ./scripts/deploy --production
|
||||
- grunt upload:prod
|
||||
|
||||
|
Before Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 256 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 860 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 460 B |
|
Before Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 630 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 38 KiB |