forked from sinonjs/sinon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild
executable file
·66 lines (54 loc) · 1.88 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
#!/usr/bin/env ruby
begin
require "juicer/merger/javascript_merger"
rescue LoadError => err
puts "Install juicer to build Sinon.JS"
if !defined?(Gem)
puts "RubyGems is not loaded. Perhaps that is why juicer can not be found?"
end
exit
end
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 ([email protected])
*
* #{File.read("LICENSE").split("\n").join("\n * ")}
*/
"use strict";
PREAMBLE
f.puts(contents.gsub("\"use strict\";\n", ""))
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"
FileUtils.mkdir("pkg") unless File.exists?("pkg")
merger = Juicer::Merger::JavaScriptMerger.new
merger << "lib/sinon/test_case.js"
merger << "lib/sinon/assert.js"
merger.save(output)
add_license(output, version)
File.open("pkg/sinon-ie#{version_string}.js", "w") do |f|
f.puts(File.read("lib/sinon/util/timers_ie.js"))
f.puts("\n")
f.puts(File.read("lib/sinon/util/xhr_ie.js"))
end
add_license("pkg/sinon-ie#{version_string}.js", version)
FileUtils.cp("lib/sinon/util/fake_timers.js", "pkg/sinon-timers#{version_string}.js")
add_license("pkg/sinon-timers#{version_string}.js", version)
FileUtils.cp("lib/sinon/util/timers_ie.js", "pkg/sinon-timers-ie#{version_string}.js")
add_license("pkg/sinon-timers-ie#{version_string}.js", version)
merger = Juicer::Merger::JavaScriptMerger.new
merger << "lib/sinon/util/fake_server_with_clock.js"
merger.save("pkg/sinon-server#{version_string}.js")
add_license("pkg/sinon-server#{version_string}.js", version)
puts "Built Sinon.JS #{version}"
end