leancloud 0.0.6 → 0.0.10
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/bin/leancloud +24 -7
- data/lib/leancloud.rb +2 -1
- data/lib/leancloud/installer.rb +1 -0
- data/lib/leancloud/symbol_dumper.rb +101 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e31eba0f5be72dbc3071862dbf67a5fe487de8b
|
4
|
+
data.tar.gz: be4d7fa18940163e5336380a691d9bf323f58270
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f89941eb0eafd006ef9090c26846cbb365885a8c76954642b7679fffac7dea9951074956a9579a52d418dc270118c404cbcb3872d17da6458df718964855ea3e
|
7
|
+
data.tar.gz: 60517e3b4a268b1281bbe71787af72217e95eebe7564d9392e57151a9482ec154005be712929ccde2db738ac3cd74bc647966d086c97ada66ec1534553370d49
|
data/bin/leancloud
CHANGED
@@ -19,8 +19,8 @@ CLActive do
|
|
19
19
|
option :components, '-c c', '--components=componenets', 'Leancloud SDK componenets'
|
20
20
|
action do |opts|
|
21
21
|
begin
|
22
|
-
|
23
|
-
|
22
|
+
initializer = LeanCloud::Initializer.new(opts)
|
23
|
+
initializer.create
|
24
24
|
rescue SignalException
|
25
25
|
rescue Exception => e
|
26
26
|
raise e
|
@@ -32,13 +32,13 @@ CLActive do
|
|
32
32
|
option :file, '-f f', '--file=file', 'Install by the specified Leanfile'
|
33
33
|
action do |opts|
|
34
34
|
begin
|
35
|
-
|
36
|
-
|
35
|
+
installer = LeanCloud::Installer.new
|
36
|
+
installer.install(opts[:file])
|
37
37
|
rescue SignalException
|
38
38
|
rescue Exception => e
|
39
39
|
raise e
|
40
40
|
ensure
|
41
|
-
|
41
|
+
installer.destroy
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -49,8 +49,25 @@ CLActive do
|
|
49
49
|
option :file, '-f f', '--file=file', 'DSYM file path'
|
50
50
|
option :verbose, '-v', '--verbose', 'Verbose mode'
|
51
51
|
action do |opts|
|
52
|
-
|
53
|
-
|
52
|
+
uploader = LeanCloud::SymbolUploader.new(opts)
|
53
|
+
uploader.upload
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
subcmd :dump_symbol do
|
58
|
+
option :file, '-f f', '--file=file', 'DSYM file path'
|
59
|
+
option :dest, '-d d', '--dest=dest', 'Symbol files destination path'
|
60
|
+
option :verbose, '-v', '--verbose', 'Verbose mode'
|
61
|
+
action do |opts|
|
62
|
+
begin
|
63
|
+
dumper = LeanCloud::SymbolDumper.new(opts)
|
64
|
+
dumper.dump
|
65
|
+
rescue SignalException
|
66
|
+
rescue Exception => e
|
67
|
+
raise e
|
68
|
+
ensure
|
69
|
+
dumper.destroy
|
70
|
+
end
|
54
71
|
end
|
55
72
|
end
|
56
73
|
|
data/lib/leancloud.rb
CHANGED
data/lib/leancloud/installer.rb
CHANGED
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'mustache'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'shellwords'
|
4
|
+
|
5
|
+
module LeanCloud
|
6
|
+
|
7
|
+
# Mach-O symbol dumper
|
8
|
+
class SymbolDumper < LeanObject
|
9
|
+
|
10
|
+
def initialize(opts)
|
11
|
+
@opts = opts
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :dsym_path
|
17
|
+
attr_reader :dest_path
|
18
|
+
|
19
|
+
def dsym_path
|
20
|
+
@opts[:file]
|
21
|
+
end
|
22
|
+
|
23
|
+
def dest_path
|
24
|
+
@opts[:dest]
|
25
|
+
end
|
26
|
+
|
27
|
+
def verbose?
|
28
|
+
@opts[:verbose]
|
29
|
+
end
|
30
|
+
|
31
|
+
def make_validation
|
32
|
+
exit_with_error('DSYM path not found') unless File.readable?(dsym_path.to_s)
|
33
|
+
exit_with_error('Destination path not found') unless File.directory?(dest_path.to_s)
|
34
|
+
end
|
35
|
+
|
36
|
+
def list_macho_files
|
37
|
+
files = []
|
38
|
+
|
39
|
+
if File.directory?(dsym_path)
|
40
|
+
files += Dir.glob(File.join(dsym_path, '**/*'))
|
41
|
+
else
|
42
|
+
files << dsym_path
|
43
|
+
end
|
44
|
+
|
45
|
+
files.each do |file|
|
46
|
+
path = Shellwords.escape(file)
|
47
|
+
info = %x(lipo -info #{path} 2>/dev/null)
|
48
|
+
yield path unless info.empty?
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def temp_symbol_file
|
53
|
+
@temp_symbol_file ||= File.join(dest_path, '~.sym')
|
54
|
+
end
|
55
|
+
|
56
|
+
def move_temp_symbol_file
|
57
|
+
head = File.open(temp_symbol_file).first
|
58
|
+
|
59
|
+
components = head.split(' ')
|
60
|
+
arch = components[2]
|
61
|
+
uuid = components[3]
|
62
|
+
name = components[4]
|
63
|
+
|
64
|
+
file = File.join(dest_path, name, uuid, "#{name}.sym")
|
65
|
+
|
66
|
+
FileUtils.mkdir_p(File.dirname(file))
|
67
|
+
FileUtils.cp(temp_symbol_file, file)
|
68
|
+
end
|
69
|
+
|
70
|
+
def dump_symbol_file(file)
|
71
|
+
uuids = %x(dwarfdump --uuid #{file})
|
72
|
+
temp = Shellwords.escape(temp_symbol_file)
|
73
|
+
|
74
|
+
uuids.split("\n").each do |line|
|
75
|
+
next unless line =~ /^UUID/
|
76
|
+
arch = line.split(' ')[2][1...-1]
|
77
|
+
system("leancloud_dump_syms -a #{arch} #{file} > #{temp} 2>/dev/null")
|
78
|
+
move_temp_symbol_file
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def dump_symbols
|
83
|
+
list_macho_files do |file|
|
84
|
+
dump_symbol_file(file)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
public
|
89
|
+
|
90
|
+
def destroy
|
91
|
+
FileUtils.rm_rf(temp_symbol_file)
|
92
|
+
end
|
93
|
+
|
94
|
+
def dump
|
95
|
+
make_validation
|
96
|
+
dump_symbols
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leancloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tianyong Tang
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- lib/leancloud/initializer.rb
|
81
81
|
- lib/leancloud/installer.rb
|
82
82
|
- lib/leancloud/leanobject.rb
|
83
|
+
- lib/leancloud/symbol_dumper.rb
|
83
84
|
- lib/leancloud.rb
|
84
85
|
- bin/leancloud
|
85
86
|
- bin/leancloud_dump_syms
|