cocoapods-jsource 0.0.1 → 0.0.2
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/Gemfile.lock +1 -1
- data/lib/cocoapods-jsource/command/jsource/add.rb +48 -33
- data/lib/cocoapods-jsource/command/jsource/clean.rb +14 -7
- data/lib/cocoapods-jsource/gem_version.rb +1 -1
- data/test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1f41012354f907c69ab430275b225d557aae7816be39059850418b839aafda6
|
4
|
+
data.tar.gz: 8f1e481b717aae28942f3e153da93e147499524c883fc6c3fd11f664044d491f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6113c095233da159a99fad3311a1c999e377e64b4eaf4835ae3a5d7cedf687b0d8b0294c8c8e5cc8e66176b11d6b43d41f68bff094a90ec2cd029f9cad9d9733
|
7
|
+
data.tar.gz: dcf0a3f39a72152b9b985cb83340f85a487e0f4c1a6aaf27783eef3f95622514c1ec97525b8802921086ac076480fe0dadc8f5e3255f64c07be0ce6686a60643
|
data/Gemfile.lock
CHANGED
@@ -45,23 +45,30 @@ module Pod
|
|
45
45
|
pod_cache_dict = cache_dict[component_name]
|
46
46
|
end
|
47
47
|
version = component_version component_name
|
48
|
+
if version.length == 0
|
49
|
+
UI.puts "#{component_name} 找不到对应的版本信息,不做任何处理"
|
50
|
+
next
|
51
|
+
end
|
48
52
|
if pod_cache_dict.has_key? version
|
49
|
-
UI.puts "#{component_name} #{version} 已经存在,缓存为 #{pod_cache_dict[version][:
|
53
|
+
UI.puts "#{component_name} #{version} 已经存在,缓存为 #{pod_cache_dict[version][:sourcelist].to_s}"
|
50
54
|
next
|
51
55
|
end
|
52
56
|
git = @gits[index]
|
53
|
-
|
54
|
-
|
57
|
+
# 获取subspec
|
58
|
+
source_file_list = get_source_file_list_from_binary(component_name)
|
59
|
+
if source_file_list.length == 0
|
60
|
+
UI.puts "#{component_name} 找不到对应的二进制,不做任何处理"
|
61
|
+
next
|
62
|
+
end
|
63
|
+
UI.puts "开始下载源码..."
|
64
|
+
for source_path in source_file_list
|
55
65
|
create_working_directory source_path
|
56
|
-
cmd ="git clone -b #{component_name}-#{version} --depth 1 #{git} #{source_path}
|
57
|
-
# UI.puts "执行:#{cmd}"
|
66
|
+
cmd ="git clone -b #{component_name}-#{version} --depth 1 #{git} #{source_path} >/dev/null 2>&1"
|
58
67
|
`#{cmd}`
|
59
|
-
pod_cache_dict[version] = {"git":git,"source":source_path,"version":version}
|
60
|
-
cache_dict[component_name] = pod_cache_dict
|
61
|
-
UI.puts "#{component_name} 源码创建成功,目录为 #{source_path}"
|
62
|
-
else
|
63
|
-
UI.puts "#{component_name} 找不到二进制组件或者找不到对应的版本信息,不做任何处理"
|
64
68
|
end
|
69
|
+
pod_cache_dict[version] = {"git":git, "sourcelist":source_file_list, "version":version}
|
70
|
+
cache_dict[component_name] = pod_cache_dict
|
71
|
+
UI.puts "#{component_name} 源码创建成功,目录为 #{source_file_list.to_s}"
|
65
72
|
index = index + 1
|
66
73
|
end
|
67
74
|
dump_to_yaml cache_dict
|
@@ -82,37 +89,45 @@ module Pod
|
|
82
89
|
end
|
83
90
|
|
84
91
|
# 根据组件名获取组件的源码调试地址
|
85
|
-
def
|
86
|
-
|
92
|
+
def get_source_file_list_from_binary(component_name)
|
93
|
+
source_file_list = []
|
87
94
|
component_pod_path = config.sandbox_root + component_name
|
88
|
-
binary_path_list = `find #{component_pod_path} -name "#{component_name}" -type
|
89
|
-
|
90
|
-
|
91
|
-
|
95
|
+
binary_path_list = `find #{component_pod_path} -name "#{component_name}*" -type l`.strip.split("\n").sort
|
96
|
+
binary_hash = {}
|
97
|
+
for path in binary_path_list
|
98
|
+
name = path.to_s.strip.split("/")[-1]
|
99
|
+
if name.to_s.include? ".a" or not name.to_s.include? "."
|
100
|
+
binary_hash[name]=path unless binary_hash.has_key? name
|
101
|
+
end
|
102
|
+
end
|
103
|
+
if binary_hash.length == 0
|
104
|
+
UI.puts "#{component_name} 找不到二进制组件或者找不到对应的版本信息,不做任何处理"
|
105
|
+
return source_file_list
|
106
|
+
end
|
107
|
+
|
108
|
+
binary_hash.each do |binary_name, binary_path|
|
109
|
+
libbinary_file_name = "lib#{component_name}.a"
|
110
|
+
source_path_list = []
|
111
|
+
UI.puts "正在解析二进制#{binary_path}源码位置"
|
112
|
+
if binary_name.to_s.end_with? libbinary_file_name
|
113
|
+
# .a 文件
|
114
|
+
source_path_list = `dwarfdump -arch x86_64 #{binary_path} | grep 'AT_name.*#{binary_name}'`.strip.split("\n").sort
|
115
|
+
else
|
116
|
+
# framework 文件
|
117
|
+
source_path_list = `dwarfdump -arch x86_64 #{binary_path} | grep 'DW_AT_name.*#{binary_name}'`.strip.split("\n").sort
|
118
|
+
end
|
92
119
|
source_path_list.each do |tmp_source_path|
|
93
|
-
if tmp_source_path.include?("Pods/#{
|
94
|
-
source_path = tmp_source_path.strip.split("(\"")[-1].split(
|
120
|
+
if tmp_source_path.include?("Pods/#{binary_name}")
|
121
|
+
source_path = tmp_source_path.strip.split("(\"")[-1].split(binary_name)[0] + "#{binary_name}"
|
122
|
+
source_file_list << source_path if source_path.to_s.length > 0
|
95
123
|
break
|
96
124
|
end
|
97
125
|
end
|
98
|
-
else
|
99
|
-
# 可能是.a
|
100
|
-
binary_file_name = "lib#{component_name}.a"
|
101
|
-
binary_path_list = `find #{component_pod_path} -name "#{binary_file_name}" -type f`.strip.split("\n").sort
|
102
|
-
if binary_file_name.length > 0
|
103
|
-
binary_file = binary_path_list[0]
|
104
|
-
source_path_list = `dwarfdump -arch x86_64 #{binary_file} | grep 'AT_name.*#{component_name}'`.strip.split("\n").sort
|
105
|
-
source_path_list.each do |tmp_source_path|
|
106
|
-
if tmp_source_path.include?("Pods/#{component_name}")
|
107
|
-
source_path = tmp_source_path.strip.split("(\"")[-1].split("component_name")[0]
|
108
|
-
break
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
126
|
end
|
113
|
-
|
127
|
+
source_file_list
|
114
128
|
end
|
115
129
|
|
130
|
+
|
116
131
|
# 创建源码的存放的目录,可能需要root权限
|
117
132
|
def create_working_directory(source_path)
|
118
133
|
parent = source_path.split("T")[0]
|
@@ -70,7 +70,13 @@ module Pod
|
|
70
70
|
#
|
71
71
|
def remove_caches(cache_descriptors)
|
72
72
|
cache_descriptors.each do |desc|
|
73
|
-
|
73
|
+
sourcelist = desc[:sourcelist]
|
74
|
+
next if sourcelist.length == 0
|
75
|
+
sourcelist.each do |source|
|
76
|
+
UI.puts "Removing cache #{source} (#{desc[:version]})"
|
77
|
+
parent = source.split("Pods")[0]
|
78
|
+
FileUtils.rm_rf(parent) if File.exist? parent
|
79
|
+
end
|
74
80
|
if @cache_dict[@pod_name].has_key? desc[:version]
|
75
81
|
if @cache_dict[@pod_name].length == 1
|
76
82
|
@cache_dict.delete @pod_name
|
@@ -78,8 +84,6 @@ module Pod
|
|
78
84
|
@cache_dict[@pod_name].delete (desc[:version]) if @cache_dict[@pod_name].has_key? desc[:version]
|
79
85
|
end
|
80
86
|
end
|
81
|
-
parent = File.dirname desc[:source]
|
82
|
-
FileUtils.rm_rf(parent) if File.exist? parent
|
83
87
|
end
|
84
88
|
end
|
85
89
|
|
@@ -89,11 +93,14 @@ module Pod
|
|
89
93
|
git=""
|
90
94
|
source=""
|
91
95
|
git=pod_dict[:git] if pod_dict.has_key? :git
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
+
sourcelist=pod_dict[:sourcelist] if pod_dict.has_key? :sourcelist
|
97
|
+
sourcelist.each do |source|
|
98
|
+
UI.message("Removing the #{pod_name} jsource cache dir #{cache_dir}") do
|
99
|
+
parent = source.split("Pods")[0]
|
100
|
+
FileUtils.rm_rf(parent) if File.exist? parent
|
101
|
+
end
|
96
102
|
end
|
103
|
+
|
97
104
|
end
|
98
105
|
end
|
99
106
|
UI.message("Removing the jsource configuration dir #{cache_file}") do
|
data/test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
`cd /Users/handa/Documents/
|
2
|
+
`cd /Users/handa/Documents/lianjia/C/lianjia_ios_platc;pod jsource add --names=Lianjia_Beike_Home --gits=http://gerrit.lianjia.com/mobile_ios/Lianjia_Beike_Home`
|
3
3
|
|
4
4
|
|
5
5
|
# `cd /Users/handa/Documents/test/testZSource;pod jsource list`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-jsource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- handa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|