-
Notifications
You must be signed in to change notification settings - Fork 15
/
build
executable file
·83 lines (58 loc) · 2 KB
/
build
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
#!/usr/bin/env coffee
require 'shelljs/global'
fs = require 'fs'
nodefy = require 'nodefy'
path = require 'path'
MODERNIZR_DIR = do ->
src = require.resolve 'modernizr/src/Modernizr.js'
return path.dirname path.join src, '..'
VERSION = "
#{ require('modernizr/package.json').version }
(browsernizr #{ require('./../package.json').version })
"
isJavascript = (filename) -> /\.js$/.test filename
stripExtension = (filename) -> filename.replace /\.[a-z0-9]+$/i, ''
findFiles = (location) -> find(location).filter(isJavascript)
do main = ->
echo "Version: #{ VERSION }"
workDir = path.resolve __dirname, './../'
libDir = path.join workDir, './lib'
testsDir = path.join workDir, './test'
rm '-rf', "#{ libDir }/*"
rm '-rf', "#{ testsDir }/*"
cd MODERNIZR_DIR
libSources = find 'src'
.filter isJavascript
libModules = libSources.map (file) ->
stripExtension path.basename file
testSources = find 'feature-detects'
.filter isJavascript
testModules = testSources.map (file) ->
stripExtension file.replace /^feature-detects\//, ''
moduleMap = {}
for moduleName in libModules
moduleMap[moduleName] = "./lib/#{ moduleName }.js"
for moduleName in testModules
moduleMap[moduleName] = "./test/#{ moduleName }.js"
sources = libSources.concat testSources
modules = libModules.concat testModules
for file, i in sources
moduleName = modules[i]
moduleFile = path.resolve workDir, moduleMap[moduleName]
moduleDir = path.dirname moduleFile
echo "module: #{ moduleName }"
#echo "moduleFile: #{ moduleFile }"
src = nodefy.parse cat(file), (depName) ->
echo " dep: #{ depName }"
unless depFile = moduleMap[depName]
return depName
depFile = path.resolve workDir, depFile
#echo " depFile: #{ depFile }"
return './' + path.relative moduleDir, depFile
mkdir '-p', moduleDir
src.to moduleFile
cd workDir
cat 'lib/ModernizrProto.js'
.replace '__VERSION__', VERSION
.to 'lib/ModernizrProto.js'
echo "Done"