effigy_wire 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +13 -6
- data/bin/bundler +17 -0
- data/bin/import +47 -0
- data/bin/protoc-gen-ruby +17 -0
- data/bin/rake +17 -0
- data/bin/repath +6 -0
- data/bin/rpc_server +17 -0
- data/bin/support/00-nuke_everything +35 -0
- data/bin/support/10-clarity_protobuf_copy +68 -0
- data/bin/support/20-clean_clarity_protobuf +46 -0
- data/bin/{effigy/package → support/30-package_proto} +10 -8
- data/bin/support/40-tweak_proto +24 -0
- data/bin/support/50-compile_proto +100 -0
- data/bin/support/60-tweak_rb +23 -0
- data/bin/{effigy/mk-require-turds → support/70-make_require_turds} +10 -6
- data/bin/support/80-delete_stragglers +7 -0
- data/bin/thor +17 -0
- data/effigy_wire.gemspec +1 -2
- data/lib/effigy/wire.rb +0 -6
- data/lib/effigy/wire/demo.pb.rb +22 -21
- data/lib/effigy/wire/dota_commonmessages.pb.rb +87 -86
- data/lib/effigy/wire/dota_modifiers.pb.rb +2 -1
- data/lib/effigy/wire/dota_usermessages.pb.rb +50 -49
- data/lib/effigy/wire/netmessages.pb.rb +2 -1
- data/lib/effigy/wire/networkbasetypes.pb.rb +15 -14
- data/lib/effigy/wire/s1/s1_dota_usermessages.pb.rb +81 -80
- data/lib/effigy/wire/s1/s1_netmessages.pb.rb +29 -28
- data/lib/effigy/wire/s1/s1_usermessages.pb.rb +33 -32
- data/lib/effigy/wire/s2/s2_base_gcmessages.pb.rb +2 -1
- data/lib/effigy/wire/s2/s2_dota_gcmessages_common.pb.rb +3 -2
- data/lib/effigy/wire/s2/s2_dota_match_metadata.pb.rb +3 -2
- data/lib/effigy/wire/s2/s2_dota_usermessages.pb.rb +96 -95
- data/lib/effigy/wire/s2/s2_gameevents.pb.rb +15 -14
- data/lib/effigy/wire/s2/s2_netmessages.pb.rb +26 -25
- data/lib/effigy/wire/s2/s2_te.pb.rb +29 -28
- data/lib/effigy/wire/s2/s2_usermessages.pb.rb +48 -47
- data/proto/dota_commonmessages.proto +91 -91
- data/proto/dota_usermessages.proto +48 -48
- data/proto/networkbasetypes.proto +14 -14
- data/proto/s1/s1_netmessages.proto +27 -27
- data/proto/s2/s2_dota_gcmessages_common.proto +1 -1
- data/proto/s2/s2_dota_match_metadata.proto +1 -1
- data/proto/s2/s2_netmessages.proto +24 -24
- metadata +19 -10
- data/BIN_README.txt +0 -18
- data/bin/clarity-protobuf/clean +0 -36
- data/bin/clarity-protobuf/copy +0 -75
- data/bin/effigy/compile-proto +0 -81
- data/bin/effigy/tweak-proto +0 -30
- data/bin/effigy/tweak-rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c49aa9c25c929fcaf22e5f0cda7ddb2dfd367eb
|
4
|
+
data.tar.gz: 60120e3e639be3f87095934cac3ac15da4044f42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2944bf1204bf189b7fddf6c2ef7ef49d438b6fdecbe276c252d2ea29ccfa60d44281820743f1d3117990d8c11287cbb0b13ee6a8926e6089d2d9db93256b83d
|
7
|
+
data.tar.gz: d3e49cb2af2386255f7bcb5ea94d115e7b5d135e861b7deb96d1703d97c44438a71acba7cb2e2261043645500b3c17917510347209fc85cb4d25da221e326eb8
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,18 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/ruby-protobuf/protobuf.git
|
3
|
+
revision: 24a339f4beb328cb5d1e953a9883cb98b4d3af0b
|
4
|
+
branch: master
|
5
|
+
specs:
|
6
|
+
protobuf (3.6.9)
|
7
|
+
activesupport (>= 3.2)
|
8
|
+
middleware
|
9
|
+
thor
|
10
|
+
thread_safe
|
11
|
+
|
1
12
|
PATH
|
2
13
|
remote: .
|
3
14
|
specs:
|
4
|
-
effigy_wire (0.0.
|
15
|
+
effigy_wire (0.0.3)
|
5
16
|
protobuf (~> 3.6.9, >= 3.6.9)
|
6
17
|
|
7
18
|
GEM
|
@@ -17,11 +28,6 @@ GEM
|
|
17
28
|
json (1.8.3)
|
18
29
|
middleware (0.1.0)
|
19
30
|
minitest (5.9.0)
|
20
|
-
protobuf (3.6.9)
|
21
|
-
activesupport (>= 3.2)
|
22
|
-
middleware
|
23
|
-
thor
|
24
|
-
thread_safe
|
25
31
|
rake (10.4.2)
|
26
32
|
thor (0.19.1)
|
27
33
|
thread_safe (0.3.5)
|
@@ -34,6 +40,7 @@ PLATFORMS
|
|
34
40
|
DEPENDENCIES
|
35
41
|
bundler (~> 1.7)
|
36
42
|
effigy_wire!
|
43
|
+
protobuf!
|
37
44
|
rake (~> 10.0)
|
38
45
|
|
39
46
|
BUNDLED WITH
|
data/bin/bundler
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'bundler' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("bundler", "bundler")
|
data/bin/import
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..')
|
4
|
+
|
5
|
+
EFF_RUBY_VERSION =
|
6
|
+
begin
|
7
|
+
ENV.fetch('EFF_RUBY_VERSION')
|
8
|
+
rescue KeyError
|
9
|
+
File.read(File.join(EFF_WIRE_ROOT, '.ruby-version'))
|
10
|
+
end
|
11
|
+
|
12
|
+
script_paths = Dir.glob(File.join(__dir__, 'support', '*')).to_a.sort
|
13
|
+
script_paths.each do |script_path|
|
14
|
+
puts <<-EOV
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
********************************************************************************
|
19
|
+
Running '#{File.basename(script_path)}'
|
20
|
+
********************************************************************************
|
21
|
+
EOV
|
22
|
+
|
23
|
+
status =
|
24
|
+
system(
|
25
|
+
{
|
26
|
+
'RBENV_VERSION' => EFF_RUBY_VERSION,
|
27
|
+
'EFF_SKIP_CONFIRM' => 'true',
|
28
|
+
'EFF_CLARITY_PROTO_ROOT' => ENV['EFF_CLARITY_PROTO_ROOT'],
|
29
|
+
'EFF_CLARITY_PROTO_BIN_ROOT' => ENV['EFF_CLARITY_PROTO_BIN_ROOT'],
|
30
|
+
'EFF_CLARITY_PROTO_COMMON_ROOT' => ENV['EFF_CLARITY_PROTO_COMMON_ROOT'],
|
31
|
+
'EFF_PROTO_ROOT' => ENV['EFF_PROTO_ROOT'],
|
32
|
+
'EFF_LIB_ROOT' => ENV['EFF_LIB_ROOT'],
|
33
|
+
'EFF_RUBY_OUT_ROOT' => ENV['EFF_RUBY_OUT_ROOT'],
|
34
|
+
},
|
35
|
+
"ruby #{script_path}"
|
36
|
+
)
|
37
|
+
|
38
|
+
raise "Something went wrong with #{script_path}" unless !!status
|
39
|
+
end
|
40
|
+
|
41
|
+
puts <<-EOV
|
42
|
+
|
43
|
+
|
44
|
+
All done! Don't forget to manually fix require_relatives and bump VERSION!
|
45
|
+
|
46
|
+
EOV
|
47
|
+
|
data/bin/protoc-gen-ruby
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'protoc-gen-ruby' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("protobuf", "protoc-gen-ruby")
|
data/bin/rake
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rake' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/repath
ADDED
data/bin/rpc_server
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rpc_server' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("protobuf", "rpc_server")
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
6
|
+
|
7
|
+
EFF_PROTO_ROOT =
|
8
|
+
begin
|
9
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
10
|
+
rescue KeyError
|
11
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
12
|
+
end
|
13
|
+
|
14
|
+
EFF_LIB_ROOT =
|
15
|
+
begin
|
16
|
+
ENV.fetch('EFF_LIB_ROOT')
|
17
|
+
rescue KeyError
|
18
|
+
File.join(EFF_WIRE_ROOT, 'lib')
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
puts "> Deleting and recreating '#{EFF_LIB_ROOT}'"
|
23
|
+
begin
|
24
|
+
FileUtils.rm_rf(EFF_LIB_ROOT)
|
25
|
+
rescue Errno::ENOENT
|
26
|
+
end
|
27
|
+
FileUtils.mkdir(EFF_LIB_ROOT)
|
28
|
+
|
29
|
+
|
30
|
+
puts "> Deleting and recreating '#{EFF_PROTO_ROOT}'"
|
31
|
+
begin
|
32
|
+
FileUtils.rm_rf(EFF_PROTO_ROOT)
|
33
|
+
rescue Errno::ENOENT
|
34
|
+
end
|
35
|
+
FileUtils.mkdir(EFF_PROTO_ROOT)
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'logger'
|
5
|
+
|
6
|
+
err_log = Logger.new(STDERR)
|
7
|
+
|
8
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
9
|
+
|
10
|
+
EFF_CLARITY_PROTO_ROOT =
|
11
|
+
begin
|
12
|
+
ENV.fetch('EFF_CLARITY_PROTO_ROOT')
|
13
|
+
rescue KeyError
|
14
|
+
File.join(
|
15
|
+
EFF_WIRE_ROOT,
|
16
|
+
'..',
|
17
|
+
'clarity-protobuf',
|
18
|
+
'src', 'main', 'proto'
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
EFF_CLARITY_PROTO_BIN_ROOT =
|
23
|
+
begin
|
24
|
+
ENV.fetch('EFF_CLARITY_PROTO_BIN_ROOT')
|
25
|
+
rescue KeyError
|
26
|
+
File.join(EFF_CLARITY_PROTO_ROOT, 'bin')
|
27
|
+
end
|
28
|
+
|
29
|
+
EFF_CLARITY_PROTO_COMMON_ROOT =
|
30
|
+
begin
|
31
|
+
ENV.fetch('EFF_CLARITY_PROTO_COMMON_ROOT')
|
32
|
+
rescue KeyError
|
33
|
+
File.join(EFF_CLARITY_PROTO_ROOT, 'common')
|
34
|
+
end
|
35
|
+
|
36
|
+
EFF_PROTO_ROOT =
|
37
|
+
begin
|
38
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
39
|
+
rescue KeyError
|
40
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
41
|
+
end
|
42
|
+
|
43
|
+
src_package_paths =
|
44
|
+
Dir.glob("#{EFF_CLARITY_PROTO_ROOT}/*").select do |package_path|
|
45
|
+
next(false) if package_path.include?(EFF_CLARITY_PROTO_BIN_ROOT)
|
46
|
+
next(false) if package_path.include?(EFF_CLARITY_PROTO_COMMON_ROOT)
|
47
|
+
true
|
48
|
+
end
|
49
|
+
|
50
|
+
if src_package_paths.empty?
|
51
|
+
raise <<-EOV
|
52
|
+
|
53
|
+
|
54
|
+
Provided clarity-protobuf proto root is apparently empty. Exiting.
|
55
|
+
|
56
|
+
EOV
|
57
|
+
end
|
58
|
+
|
59
|
+
src_package_paths.each do |src_package_path|
|
60
|
+
puts "> Copying '#{src_package_path}'"
|
61
|
+
FileUtils.cp_r(src_package_path, EFF_PROTO_ROOT)
|
62
|
+
end
|
63
|
+
|
64
|
+
puts "> Copying '#{EFF_CLARITY_PROTO_COMMON_ROOT}'"
|
65
|
+
FileUtils.cp(
|
66
|
+
Dir.glob(File.join(EFF_CLARITY_PROTO_COMMON_ROOT, '*.proto')),
|
67
|
+
EFF_PROTO_ROOT
|
68
|
+
)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
6
|
+
|
7
|
+
EFF_PROTO_ROOT =
|
8
|
+
begin
|
9
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
10
|
+
rescue KeyError
|
11
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
12
|
+
end
|
13
|
+
|
14
|
+
EFF_SKIP_CONFIRM =
|
15
|
+
begin
|
16
|
+
!!ENV.fetch('EFF_SKIP_CONFIRM')
|
17
|
+
rescue KeyError
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
unless EFF_SKIP_CONFIRM
|
22
|
+
print "Remove non-proto files in '#{EFF_PROTO_ROOT}'? [yN] > "
|
23
|
+
answer = gets.strip
|
24
|
+
|
25
|
+
unless answer == 'y'
|
26
|
+
puts 'OK, aborting.'
|
27
|
+
exit(0)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
begin
|
32
|
+
bindir_path = File.join(EFF_PROTO_ROOT, 'bin')
|
33
|
+
puts "> Removing #{bindir_path}"
|
34
|
+
FileUtils.rm_rf(bindir_path)
|
35
|
+
rescue Errno::ENOENT
|
36
|
+
end
|
37
|
+
|
38
|
+
proto_paths = Dir.glob("#{EFF_PROTO_ROOT}/**/*")
|
39
|
+
|
40
|
+
proto_paths.each do |proto_path|
|
41
|
+
next if File.directory?(proto_path)
|
42
|
+
next if File.extname(proto_path) == '.proto' # keep these
|
43
|
+
|
44
|
+
puts "> Removing #{proto_path}"
|
45
|
+
File.delete(proto_path)
|
46
|
+
end
|
@@ -4,14 +4,16 @@ require 'logger'
|
|
4
4
|
|
5
5
|
err_log = Logger.new(STDERR)
|
6
6
|
|
7
|
-
|
7
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
8
|
+
|
9
|
+
EFF_PROTO_ROOT =
|
8
10
|
begin
|
9
|
-
ENV.fetch('
|
11
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
10
12
|
rescue KeyError
|
11
|
-
File.join(
|
13
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
12
14
|
end
|
13
15
|
|
14
|
-
proto_paths = Dir.glob("#{
|
16
|
+
proto_paths = Dir.glob("#{EFF_PROTO_ROOT}/**/*").select do |proto_path|
|
15
17
|
next(false) if File.directory?(proto_path)
|
16
18
|
true
|
17
19
|
end
|
@@ -20,11 +22,11 @@ if proto_paths.empty?
|
|
20
22
|
raise <<-EOV
|
21
23
|
|
22
24
|
|
23
|
-
No definitions found in #{
|
25
|
+
No definitions found in #{EFF_PROTO_ROOT}!
|
24
26
|
|
25
27
|
Either:
|
26
28
|
1. Run ./bin/bootstrap in the project root directory, or
|
27
|
-
2. Set
|
29
|
+
2. Set EFF_PROTO_ROOT to the location of your proto definitions
|
28
30
|
|
29
31
|
EOV
|
30
32
|
end
|
@@ -37,9 +39,9 @@ proto_paths.each do |proto_path|
|
|
37
39
|
end
|
38
40
|
|
39
41
|
exclusion_index =
|
40
|
-
proto_path.split('/').length - 1 ==
|
42
|
+
proto_path.split('/').length - 1 == EFF_PROTO_ROOT.split('/').length ? -3
|
41
43
|
: -2
|
42
|
-
rel_path = proto_path[
|
44
|
+
rel_path = proto_path[EFF_PROTO_ROOT.length+1..-1]
|
43
45
|
package_components =
|
44
46
|
[
|
45
47
|
'effigy',
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
4
|
+
|
5
|
+
EFF_PROTO_ROOT =
|
6
|
+
begin
|
7
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
8
|
+
rescue KeyError
|
9
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
10
|
+
end
|
11
|
+
|
12
|
+
Dir.glob(File.join(EFF_PROTO_ROOT, '**/*')).each do |proto_path|
|
13
|
+
next if File.directory?(proto_path)
|
14
|
+
|
15
|
+
puts "> Tweaking #{File.basename(proto_path)}"
|
16
|
+
cmd = <<-EOV
|
17
|
+
sed -i \
|
18
|
+
-e '/optional/ s/optional \\./optional /' \
|
19
|
+
-e '/repeated/ s/repeated \\./repeated /' \
|
20
|
+
#{proto_path}
|
21
|
+
EOV
|
22
|
+
status = system(cmd)
|
23
|
+
exit(-1) unless !!status
|
24
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'fileutils'
|
3
|
+
require 'logger'
|
4
|
+
|
5
|
+
err_log = Logger.new(STDERR)
|
6
|
+
|
7
|
+
EFF_WIRE_ROOT = File.join(__dir__, '..', '..')
|
8
|
+
|
9
|
+
EFF_PROTO_ROOT =
|
10
|
+
begin
|
11
|
+
ENV.fetch('EFF_PROTO_ROOT')
|
12
|
+
rescue KeyError
|
13
|
+
File.join(EFF_WIRE_ROOT, 'proto')
|
14
|
+
end
|
15
|
+
|
16
|
+
EFF_LIB_ROOT =
|
17
|
+
begin
|
18
|
+
ENV.fetch('EFF_LIB_ROOT')
|
19
|
+
rescue KeyError
|
20
|
+
File.join(EFF_WIRE_ROOT, 'lib')
|
21
|
+
end
|
22
|
+
|
23
|
+
EFF_RUBY_OUT_ROOT =
|
24
|
+
begin
|
25
|
+
ENV.fetch('EFF_RUBY_OUT_ROOT')
|
26
|
+
rescue KeyError
|
27
|
+
File.join(EFF_LIB_ROOT, 'effigy', 'wire')
|
28
|
+
end
|
29
|
+
|
30
|
+
EFF_SKIP_CONFIRM =
|
31
|
+
begin
|
32
|
+
!!ENV.fetch('EFF_SKIP_CONFIRM')
|
33
|
+
rescue KeyError
|
34
|
+
false
|
35
|
+
end
|
36
|
+
|
37
|
+
unless EFF_SKIP_CONFIRM
|
38
|
+
print "Have you cleaned, packaged, and tweak-proto'ed? [yN] > "
|
39
|
+
answer = gets.strip
|
40
|
+
|
41
|
+
unless answer == 'y'
|
42
|
+
print 'OK, go take care of that.'
|
43
|
+
exit(0)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
puts "> Ensuring output directory exists"
|
48
|
+
FileUtils.mkdir_p(EFF_RUBY_OUT_ROOT)
|
49
|
+
|
50
|
+
package_paths = []
|
51
|
+
proto_paths = []
|
52
|
+
|
53
|
+
Dir.glob("#{EFF_PROTO_ROOT}/*").select do |path|
|
54
|
+
if File.directory?(path)
|
55
|
+
package_paths << path
|
56
|
+
else
|
57
|
+
proto_paths << path
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
proto_paths.each do |proto_path|
|
62
|
+
puts "> Compiling '#{File.basename(proto_path)}'"
|
63
|
+
cmd = <<-EOV
|
64
|
+
protoc \
|
65
|
+
--proto_path=#{File.join(EFF_PROTO_ROOT)} \
|
66
|
+
--ruby_out=#{EFF_RUBY_OUT_ROOT} \
|
67
|
+
#{proto_path}
|
68
|
+
EOV
|
69
|
+
status = system(
|
70
|
+
{
|
71
|
+
'PB_UPCASE_ENUMS' => 'true',
|
72
|
+
'PB_NO_TAG_WARNINGS' => 'true'
|
73
|
+
},
|
74
|
+
cmd
|
75
|
+
)
|
76
|
+
exit(-1) unless !!status
|
77
|
+
end
|
78
|
+
|
79
|
+
package_paths.each do |package_path|
|
80
|
+
puts "> Package '#{File.basename(package_path)}'"
|
81
|
+
|
82
|
+
Dir.glob(File.join(package_path, '*.proto')).each do |proto_path|
|
83
|
+
puts " > #{File.basename(proto_path)}"
|
84
|
+
cmd = <<-EOV
|
85
|
+
protoc \
|
86
|
+
--proto_path=#{File.join(EFF_PROTO_ROOT)} \
|
87
|
+
--proto_path=#{package_path} \
|
88
|
+
--ruby_out=#{EFF_RUBY_OUT_ROOT} \
|
89
|
+
#{proto_path}
|
90
|
+
EOV
|
91
|
+
status = system(
|
92
|
+
{
|
93
|
+
'PB_UPCASE_ENUMS' => 'true',
|
94
|
+
'PB_NO_TAG_WARNINGS' => 'true'
|
95
|
+
},
|
96
|
+
cmd
|
97
|
+
)
|
98
|
+
exit(-1) unless !!status
|
99
|
+
end
|
100
|
+
end
|