effigy_wire 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|