Class: Pod::Downloader::Cache
- Inherits:
-
Object
- Object
- Pod::Downloader::Cache
- Defined in:
- lib/cocoapods-mtxx-bin/native/installer.rb
Constant Summary collapse
- @@lock =
多线程锁
Mutex.new
Instance Method Summary collapse
- #ensure_matching_version ⇒ Object
-
#old_ensure_matching_version ⇒ Object
rmtree 在多进程情况下可能 Directory not empty @ dir_s_rmdir 错误 old_ensure_matching_version 会移除不是同一个 CocoaPods 版本的组件缓存.
- #uncached_pod(request) ⇒ Object
Instance Method Details
#ensure_matching_version ⇒ Object
196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/cocoapods-mtxx-bin/native/installer.rb', line 196 def ensure_matching_version @@lock.synchronize do version_file = root + 'VERSION' # version = version_file.read.strip if version_file.file? # root.rmtree if version != Pod::VERSION && root.exist? root.mkpath version_file.open('w') { |f| f << Pod::VERSION } end end |
#old_ensure_matching_version ⇒ Object
rmtree 在多进程情况下可能 Directory not empty @ dir_s_rmdir 错误 old_ensure_matching_version 会移除不是同一个 CocoaPods 版本的组件缓存
195 |
# File 'lib/cocoapods-mtxx-bin/native/installer.rb', line 195 alias old_ensure_matching_version ensure_matching_version |
#uncached_pod(request) ⇒ Object
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/cocoapods-mtxx-bin/native/installer.rb', line 208 def uncached_pod(request) in_tmpdir do |target| result, podspecs = download(request, target) result.location = nil # 记录下载大小大于阈值的库及大小 if File.exist?(target.to_s) dir_size = `du -sk #{target.to_s}`.strip().split(' ')[0] CBin::PodSize.add_pod({:name => request.name, :size => dir_size}) end podspecs.each do |name, spec| destination = path_for_pod(request, :name => name, :params => result.) copy_and_clean(target, destination, spec) write_spec(spec, path_for_spec(request, :name => name, :params => result.)) if request.name == name result.location = destination end end result end end |