forked from sinonjs/sinon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build
executable file
·55 lines (44 loc) · 1.7 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
#!/usr/bin/env ruby
require "fileutils"
require "pathname"
def add_license(file, version)
contents = File.read(file)
File.open(file, "w") do |f|
f.puts <<PREAMBLE
/**
* Sinon.JS #{version}, #{Time.now.strftime("%Y/%m/%d")}
*
* @author Christian Johansen (christian@cjohansen.no)
* @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
*
* #{File.read("LICENSE").split("\n").join("\n * ")}
*/
PREAMBLE
f.puts(contents)
end
end
Dir.chdir(File.dirname(__FILE__)) do
version = File.read("package.json").match(/"version":\s+"(.*)"/)[1]
version_string = ARGV[0] == "plain" ? "" : "-#{version}"
output = "pkg/sinon#{version_string}.js"
browserify = "./node_modules/.bin/browserify"
FileUtils.mkdir("pkg") unless File.exists?("pkg")
`#{browserify} -s sinon lib/sinon.js -o #{output}`
add_license(output, version)
File.open("pkg/sinon-ie#{version_string}.js", "w") do |f|
f.puts(File.read("lib/sinon/util-ie/timers.js"))
f.puts("\n")
f.puts(File.read("lib/sinon/util-ie/xhr.js"))
f.puts(File.read("lib/sinon/util-ie/xdr.js"))
end
add_license("pkg/sinon-ie#{version_string}.js", version)
output_server = "pkg/sinon-server#{version_string}.js"
server_entry_point = "lib/sinon/util/fake_server_with_clock.js"
simulate_empty_sinon_core = "-i './lib/sinon/util/core.js'"
`#{browserify} #{server_entry_point} #{simulate_empty_sinon_core} -s sinon -o #{output_server}`
add_license("pkg/sinon-server#{version_string}.js", version)
FileUtils.cp(output, 'pkg/sinon.js')
FileUtils.cp("pkg/sinon-ie#{version_string}.js", 'pkg/sinon-ie.js')
FileUtils.cp("pkg/sinon-server#{version_string}.js", 'pkg/sinon-server.js')
puts "Built Sinon.JS #{version}"
end