cocoapods-cache-proxy 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 314ee2e85d24d3f0cdb7decd9b1507a810b715197d095ed9b8bb522a5e14d561
4
+ data.tar.gz: 74015ad447d10595a45bfa2fdd939c0eb9495acd67e90fff57e320acd193e915
5
+ SHA512:
6
+ metadata.gz: '049e7d8f29245475de4808681557ca09dc94b19c2e1fd1dc0d1febd6f846aadf9c9640f64c79cc12a87928b12fcdd197c0f57891ab43be034e337e4e6a84eec3'
7
+ data.tar.gz: c089b4c51f24d2e6e4b830e9058394b117008c931d11010890708193c682b428f11ef9a7fa441dcde51817323b1df5b0a1c0687deee2d8199a8f00a6cc67ea15
@@ -0,0 +1 @@
1
+ require 'cocoapods-cache-proxy/gem_version'
@@ -0,0 +1 @@
1
+ require 'cocoapods-cache-proxy/command/cache_proxy'
@@ -0,0 +1,29 @@
1
+ require 'cocoapods-cache-proxy/gem_version'
2
+
3
+ module Pod
4
+ class Command
5
+ class Cache < Command
6
+ class Proxy < Cache
7
+
8
+ require 'cocoapods-cache-proxy/command/cache_proxy/add'
9
+ require 'cocoapods-cache-proxy/command/cache_proxy/remove'
10
+ # require 'cocoapods-cache-proxy/command/cache_proxy/update'
11
+ require 'cocoapods-cache-proxy/command/cache_proxy/list'
12
+
13
+ self.abstract_command = true
14
+ self.version = CocoapodsCacheProxy::VERSION
15
+ self.description = '代理缓存服务'\
16
+ "\n v#{CocoapodsCacheProxy::VERSION}\n"
17
+ self.summary = <<-SUMMARY
18
+ 代理缓存
19
+ SUMMARY
20
+
21
+ self.default_subcommand = 'list'
22
+
23
+ def init
24
+
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,48 @@
1
+ require 'cocoapods-cache-proxy/helper/helper'
2
+
3
+ module Pod
4
+ class Command
5
+ class Cache < Command
6
+ class Proxy
7
+ class Add < Proxy
8
+ self.summary = '添加缓存代理'
9
+
10
+ self.description = <<-DESC
11
+ 添加缓存代理
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true),
16
+ CLAide::Argument.new('URL', true),
17
+ CLAide::Argument.new('USER', false),
18
+ CLAide::Argument.new('PASSWORD', false)
19
+ ]
20
+
21
+ def initialize(argv)
22
+ init
23
+ @name, @url, @user, @password = argv.shift_argument, argv.shift_argument, argv.shift_argument, argv.shift_argument
24
+ @silent = argv.flag?('silent', false)
25
+ super
26
+ end
27
+
28
+ def validate!
29
+ super
30
+ help! 'This command requires both a repo name.' unless @name
31
+ help! 'This command requires both a repo url.' unless @url
32
+ help! 'This command requires both a repo user.' unless @user
33
+ help! 'This command requires both a repo password.' unless @password
34
+ end
35
+
36
+ def run
37
+ raise Pod::Informative.exception "`#{@name}` 已经存在" if CPSH.check_cache_proxy_source_conf_exists(@name)
38
+ raise Pod::Informative.exception "官方源不存在, 请先添加官方源" unless Pod::Config.instance.sources_manager.master_repo_functional?
39
+
40
+ UI.section("Add proxy server config `#{@url}` into local spec repo `#{@name}`") do
41
+ CPSH.init_cache_proxy_source(@name, @url, @user, @password)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,52 @@
1
+ require 'cocoapods-cache-proxy/helper/helper'
2
+ require 'cocoapods-cache-proxy/native/cache_proxy_source'
3
+
4
+ module Pod
5
+ class Command
6
+ class Cache < Command
7
+ class Proxy
8
+ class List < Proxy
9
+ self.summary = '列出缓存代理'
10
+
11
+ self.description = <<-DESC
12
+ 列出缓存代理
13
+ DESC
14
+
15
+ def initialize(argv)
16
+ init
17
+ @silent = argv.flag?('silent', false)
18
+ super
19
+ end
20
+
21
+ def validate!
22
+ super
23
+ end
24
+
25
+ def run
26
+ sources = CPSH.get_all_cache_proxy_source_conf()
27
+ print_sources(sources)
28
+ end
29
+
30
+ def print_source(source)
31
+ if source.is_a?(Pod::CacheProxySource)
32
+ UI.puts "- URL: #{source.baseURL}"
33
+ UI.puts "- Path: #{CPSH.get_cache_proxy_source_root_dir(source.name)}"
34
+ end
35
+ end
36
+
37
+ def print_sources(sources)
38
+ sources.each do |source|
39
+ if source.is_a?(Pod::CacheProxySource)
40
+ UI.title source.name do
41
+ UI.puts "- URL: #{source.baseURL}"
42
+ UI.puts "- Path: #{CPSH.get_cache_proxy_source_root_dir(source.name)}"
43
+ end
44
+ end
45
+ end
46
+ UI.puts "\n"
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,43 @@
1
+ require 'cocoapods-cache-proxy/helper/helper'
2
+
3
+ module Pod
4
+ class Command
5
+ class Cache < Command
6
+ class Proxy
7
+ class Remove < Proxy
8
+ self.summary = '移除缓存代理'
9
+
10
+ self.description = <<-DESC
11
+ 移除缓存代理
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true),
16
+ ]
17
+
18
+ def initialize(argv)
19
+ init
20
+ @name = argv.shift_argument
21
+ @silent = argv.flag?('silent', false)
22
+ super
23
+ end
24
+
25
+ def validate!
26
+ super
27
+ unless @name
28
+ help! 'This command requires both a repo name.'
29
+ end
30
+ end
31
+
32
+ def run
33
+ raise Pod::Informative.exception "`#{@name}` 不存在" unless CPSH.check_cache_proxy_source_conf_exists(@name)
34
+
35
+ UI.section("remove cache proxy repo `#{@name}`") do
36
+ CPSH.remove_cache_proxy_source(@name)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,47 @@
1
+ require 'cocoapods-cache-proxy/helper/helper'
2
+
3
+ module Pod
4
+ class Command
5
+ class Cache < Command
6
+ class Proxy
7
+ class Update < Proxy
8
+ self.summary = '更新缓存代理'
9
+
10
+ self.description = <<-DESC
11
+ 更新缓存代理
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('NAME', true),
16
+ CLAide::Argument.new('URL', true),
17
+ CLAide::Argument.new('USER', false),
18
+ CLAide::Argument.new('PASSWORD', false)
19
+ ]
20
+
21
+ def initialize(argv)
22
+ init
23
+ @name, @url, @user, @password = argv.shift_argument, argv.shift_argument, argv.shift_argument, argv.shift_argument
24
+ @silent = argv.flag?('silent', false)
25
+ super
26
+ end
27
+
28
+ def validate!
29
+ super
30
+ help! 'This command requires both a repo name.' unless @name
31
+ help! 'This command requires both a repo url.' unless @url
32
+ help! 'This command requires both a repo user.' unless @user
33
+ help! 'This command requires both a repo password.' unless @password
34
+ end
35
+
36
+ def run
37
+ raise Pod::Informative.exception "`#{@name}` 不存在" unless CPSH.check_cache_proxy_source_conf_exists(@name)
38
+
39
+ UI.section("update cache proxy repo `#{@name}`") do
40
+ CPSH.init_cache_proxy_source(@name, @url, @user, @password)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,9 @@
1
+ module CocoapodsCacheProxy
2
+ VERSION = "0.0.1"
3
+ end
4
+
5
+ module Pod
6
+ def self.match_version?(*version)
7
+ Gem::Dependency.new("", *version).match?('', Pod::VERSION)
8
+ end
9
+ end
@@ -0,0 +1,111 @@
1
+ require 'fileutils'
2
+ require 'find'
3
+ require 'json'
4
+ require 'cocoapods'
5
+ require 'yaml'
6
+ require 'uri'
7
+ require 'pathname'
8
+ require 'cocoapods-cache-proxy/native/cache_proxy_source'
9
+
10
+ module Pod
11
+ class CacheProxySource
12
+ class CacheProxySourceHelper
13
+
14
+ def self.get_cache_proxy_root_dir()
15
+ "#{Pod::Config.instance.home_dir}/cache-proxy"
16
+ end
17
+
18
+ def self.get_cache_proxy_source_root_dir(source_name)
19
+ "#{Pod::Config.instance.home_dir}/cache-proxy/#{source_name}"
20
+ end
21
+
22
+ def self.get_cache_proxy_source_conf_file_name()
23
+ ".cache_proxy_conf.yml"
24
+ end
25
+
26
+ def self.get_cache_proxy_source_conf_path(source_name)
27
+ "#{get_cache_proxy_source_root_dir(source_name)}/#{get_cache_proxy_source_conf_file_name()}"
28
+ end
29
+
30
+ def self.check_cache_proxy_source_conf_exists(source_name)
31
+ File.exist?(get_cache_proxy_source_conf_path(source_name))
32
+ end
33
+
34
+ def self.load_conf(source_name)
35
+ path = get_cache_proxy_source_conf_path(source_name)
36
+ if File.exist?(path)
37
+ YAML.load_file(path)
38
+ else
39
+ nil
40
+ end
41
+ end
42
+
43
+ def self.create_cache_proxy_source_conf(source_name, url, user, password)
44
+ path = get_cache_proxy_source_conf_path(source_name)
45
+ info = {
46
+ 'name' => source_name,
47
+ 'url' => url,
48
+ }
49
+
50
+ info['user'] = user unless user.blank?
51
+ info['password'] = password unless password.blank?
52
+
53
+ conf = File.new(path, "wb")
54
+ conf << info.to_yaml
55
+ conf.close
56
+
57
+ end
58
+
59
+
60
+ def self.init_cache_proxy_source(cache_source_name, cache_source_url, user, password)
61
+ begin
62
+ show_output = Pod::Config.instance.verbose?
63
+
64
+ cache_source_root_path = "#{get_cache_proxy_source_root_dir(cache_source_name)}"
65
+
66
+ FileUtils.rm_rf(cache_source_root_path) if Dir.exist?(cache_source_root_path)
67
+
68
+ FileUtils.mkdir_p(cache_source_root_path)
69
+
70
+ Pod::UI.message "Generating source conf .....".yellow if show_output
71
+ create_cache_proxy_source_conf(cache_source_name, cache_source_url, user, password)
72
+ Pod::UI.message "Successfully added repo #{cache_source_name}".green if show_output
73
+
74
+ rescue Exception => e
75
+ Pod::UI.message "发生异常,清理文件 .....".yellow if show_output
76
+ FileUtils.rm_rf(cache_source_root_path) if Dir.exist?(cache_source_root_path)
77
+ Pod::UI.message e.message.yellow if show_output
78
+ Pod::UI.message e.backtrace.inspect.yellow if show_output
79
+ raise e
80
+ end
81
+ end
82
+
83
+ def self.remove_cache_proxy_source(cache_source_name)
84
+ show_output = Pod::Config.instance.verbose?
85
+
86
+ cache_source_root_path = "#{get_cache_proxy_source_root_dir(cache_source_name)}"
87
+ FileUtils.rm_rf(cache_source_root_path) if Dir.exist?(cache_source_root_path)
88
+
89
+ Pod::UI.message "Successfully remove repo #{cache_source_name}".green if show_output
90
+ end
91
+
92
+ def self.get_cache_proxy_source_conf(cache_source_name)
93
+ return nil unless (hash = load_conf(cache_source_name))
94
+ Pod::CacheProxySource.new(hash['name'], hash['url'], hash['user'], hash['password'])
95
+ end
96
+
97
+ def self.get_all_cache_proxy_source_conf()
98
+ return [] unless Dir.exist?(get_cache_proxy_root_dir())
99
+ confs = []
100
+ Find.find(get_cache_proxy_root_dir()) do |path|
101
+ next unless File.file?(path) && path.end_with?(".cache_proxy_conf.yml")
102
+ pn = Pathname.new(path)
103
+ source_name = pn.dirname.basename
104
+ next unless (conf = get_cache_proxy_source_conf(source_name))
105
+ confs << conf
106
+ end
107
+ confs
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,3 @@
1
+ require 'cocoapods-cache-proxy/helper/cache_proxy_source_helper'
2
+
3
+ CPSH = Pod::CacheProxySource::CacheProxySourceHelper
@@ -0,0 +1,34 @@
1
+ module Pod
2
+ class CacheProxySource
3
+ # @param [String] proxy_source The name of the repository
4
+ #
5
+ # @param [String] url see {#url}
6
+ #
7
+ def initialize(name, baseURL, user, password)
8
+ @name = name
9
+ @baseURL = baseURL
10
+ @user = user
11
+ @password = password
12
+ end
13
+
14
+ def name
15
+ @name
16
+ end
17
+
18
+ def baseURL
19
+ @baseURL
20
+ end
21
+
22
+ def user
23
+ @user
24
+ end
25
+
26
+ def password
27
+ @password
28
+ end
29
+
30
+ def build_proxy_source(pod, git, tag, submodules = false)
31
+ "#{@baseURL}/#{pod}?git=#{git}&tag=#{tag}&submodules=#{submodules}"
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,28 @@
1
+ require 'cocoapods-cache-proxy/native/cache_proxy_source'
2
+ require 'cocoapods-cache-proxy/helper/helper'
3
+
4
+ module Pod
5
+ class Config
6
+ attr_reader :cache_proxy_source
7
+
8
+ def set_cache_proxy_source(name)
9
+ return if name.blank?
10
+ return unless (cnf = CPSH.get_cache_proxy_source_conf(name))
11
+ @cache_proxy_source = cnf
12
+ end
13
+
14
+ def cache_proxy_source()
15
+ @cache_proxy_source
16
+ end
17
+
18
+ # def remove_cache_proxy_source(name)
19
+ # return if name.blank? || @cache_proxy_source.nil? || @cache_proxy_source.empty?
20
+ # @cache_proxy_source.delete_if { |cnf| cnf.name == name }
21
+ # end
22
+
23
+ # def get_all_cache_proxy_sources()
24
+ # return [] if @cache_proxy_source.nil?
25
+ # @cache_proxy_source
26
+ # end
27
+ end
28
+ end
@@ -0,0 +1,59 @@
1
+ require 'cocoapods-downloader'
2
+ require 'cocoapods'
3
+
4
+ # module Pod
5
+ # module Downloader
6
+ # class Cache
7
+ # alias_method :orig_copy_and_clean, :copy_and_clean
8
+ # def copy_and_clean(source, destination, spec)
9
+ # # specs_by_platform = group_subspecs_by_platform(spec)
10
+ # # destination.parent.mkpath
11
+ # # FileUtils.rm_rf(destination)
12
+ # # FileUtils.cp_r(source, destination)
13
+ # # Pod::Installer::PodSourcePreparer.new(spec, destination).prepare!
14
+ # # Sandbox::PodDirCleaner.new(destination, specs_by_platform).clean!
15
+ # Pod::UI.message "copy_and_clean: \n"
16
+ # Pod::UI.message "spec: #{spec.class}"
17
+ # Pod::UI.message "source: #{source}"
18
+ # Pod::UI.message "destination: #{destination}"
19
+ # Pod::UI.message "destination parent: #{destination.parent}"
20
+ # Pod::UI.message "destination parent basename: #{destination.basename}"
21
+ # p = "/Users/king/Desktop/#{source.basename}"
22
+ # FileUtils.rm_rf(p)
23
+ # FileUtils.cp_r(source, p)
24
+ # # exit 0
25
+ # orig_copy_and_clean(source, destination, spec)
26
+ # # exit 0
27
+ # end
28
+ # end
29
+ # end
30
+ # end
31
+
32
+ module Pod
33
+ module Downloader
34
+ class Http
35
+
36
+ alias_method :orig_download_file, :download_file
37
+
38
+ def download_file(full_filename)
39
+ Pod::UI.message "full_filename: #{full_filename}" if Pod::Config.instance.verbose?
40
+
41
+ proxy_source = Pod::Config.instance.cache_proxy_source
42
+ download_uri = URI(url)
43
+ proxy_source_uri = URI(proxy_source.baseURL)
44
+
45
+ Pod::UI.message "url: #{download_uri.path}" if Pod::Config.instance.verbose?
46
+ Pod::UI.message "proxy_source baseURL: #{proxy_source.baseURL}" if Pod::Config.instance.verbose?
47
+ if download_uri.path.start_with?(proxy_source_uri.path)
48
+ curl_options = []
49
+ curl_options.concat(["-u", "#{proxy_source.user}:#{proxy_source.password}"]) unless proxy_source.user.blank? && proxy_source.password.blank?
50
+ curl_options.concat(["-f", "-L", "-o", full_filename, url, "--create-dirs"])
51
+ Pod::UI.message "curl_options: #{curl_options.join(" ")}" if Pod::Config.instance.verbose?
52
+ curl! curl_options
53
+ else
54
+ orig_download_file(full_filename)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,20 @@
1
+
2
+ # module Pod
3
+ # class Installer
4
+
5
+ # # alias_method :old_specs_for_pod, :specs_for_pod
6
+ # # def specs_for_pod(pod_name)
7
+ # # specs_by_platform = old_specs_for_pod(pod_name)
8
+ # # specs = specs_by_platform.values.flatten
9
+ # # root_spec = specs.first.root
10
+ # # UI.message "specs_by_platform values name: #{specs}"
11
+ # # UI.message "specs_by_platform root_spec name: #{root_spec.name}"
12
+ # # UI.message "specs_by_platform root_spec version: #{root_spec.version}"
13
+ # # UI.message "specs_by_platform origin source: #{root_spec.source}"
14
+ # # root_spec.source = { :http => 'http://127.0.0.1:9898/static/AFNetworking.zip'}
15
+ # # UI.message "specs_by_platform proxy source: #{root_spec.source}"
16
+ # # # exit 0
17
+ # # specs_by_platform
18
+ # # end
19
+ # end
20
+ # end
@@ -0,0 +1,6 @@
1
+ require 'cocoapods-cache-proxy/native/downloader'
2
+ require 'cocoapods-cache-proxy/native/resolver'
3
+ require 'cocoapods-cache-proxy/native/podfile_dsl'
4
+ require 'cocoapods-cache-proxy/native/cache_proxy_source'
5
+ require 'cocoapods-cache-proxy/native/config'
6
+ # require 'cocoapods-cache-proxy/native/installer'
@@ -0,0 +1,64 @@
1
+ require 'cocoapods-core'
2
+
3
+ module Pod
4
+ class Podfile
5
+ module DSL
6
+
7
+ def ignore_cache_proxy_pods!(pods = [])
8
+ Pod::UI.puts "current_target_definition: #{current_target_definition}" if Pod::Config.instance.verbose?
9
+ current_target_definition.set_ignore_cache_proxy_pods(pods) if !pods.blank? && !current_target_definition.nil?
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+
16
+ module Pod
17
+ class Podfile
18
+ class TargetDefinition
19
+ attr_reader :ignore_cache_proxy
20
+
21
+ alias_method :orig_store_pod, :store_pod
22
+ def store_pod(name, *requirements)
23
+ Pod::UI.message "store_pod requirements: #{requirements}" if Pod::Config.instance.verbose?
24
+ parse_ignore_cache_proxy(name, requirements)
25
+ orig_store_pod(name, *requirements)
26
+ end
27
+
28
+ def parse_ignore_cache_proxy(name, requirements)
29
+ requirements.each do |options|
30
+ next unless options.is_a?(Hash)
31
+ Pod::UI.message "parse_ignore_cache_proxy: #{options}" if Pod::Config.instance.verbose?
32
+ set_ignore_cache_proxy_pods([name]) if options.has_key?(:git)
33
+ end
34
+ end
35
+
36
+ def set_ignore_cache_proxy_pods(pods)
37
+ return if pods.blank?
38
+ @ignore_cache_proxy = [] if @ignore_cache_proxy.nil?
39
+ pods.uniq.each do |pod|
40
+ @ignore_cache_proxy << pod unless @ignore_cache_proxy.include?(pod)
41
+ end
42
+ Pod::UI.message "set_ignore_cache_proxy_pods name: #{@ignore_cache_proxy}" if Pod::Config.instance.verbose?
43
+ end
44
+
45
+ def get_ignore_cache_proxy_pods()
46
+ if @ignore_cache_proxy.nil?
47
+ []
48
+ else
49
+ @ignore_cache_proxy.uniq
50
+ end
51
+ end
52
+
53
+ def check_ignore_cache_proxy_pod(pod)
54
+ return false if pod.blank?
55
+ ignores = []
56
+ ignores.concat(get_ignore_cache_proxy_pods())
57
+ ignores.concat(root.get_ignore_cache_proxy_pods()) if !root?
58
+ ignores.concat(parent.get_ignore_cache_proxy_pods()) unless parent.nil?
59
+ Pod::UI.message "check_ignore_cache_proxy_pod #{name}: #{ignores} #{ignores.uniq.include?(pod)}" if Pod::Config.instance.verbose?
60
+ return ignores.uniq.include?(pod)
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,41 @@
1
+ require 'cocoapods'
2
+ require 'cocoapods-cache-proxy/native/config'
3
+ require 'cocoapods-cache-proxy/native/podfile_dsl'
4
+ require 'cocoapods-cache-proxy/gem_version'
5
+
6
+ module Pod
7
+ class Resolver
8
+
9
+ alias_method :orig_resolver_specs_by_target, :resolver_specs_by_target
10
+ def resolver_specs_by_target()
11
+ specs_by_target = orig_resolver_specs_by_target()
12
+ proxy_source = Pod::Config.instance.cache_proxy_source
13
+ return specs_by_target if proxy_source.nil?
14
+
15
+ show_output = Pod::Config.instance.verbose?
16
+ specs_by_target.each do |target, rspecs|
17
+ rspecs.each do |spec|
18
+ root_spec = spec.spec.root
19
+ source = root_spec.source
20
+ UI.message "spec name: #{root_spec.name}" if show_output
21
+ UI.message "spec source: #{source}" if show_output
22
+ UI.message "spec version: #{root_spec.version}" if show_output
23
+ next unless !source.blank? && source.has_key?(:git) && source.has_key?(:tag)
24
+ UI.message "ignore_cache_proxy_pod: #{target.name} #{root_spec.name}" if show_output; next if target.check_ignore_cache_proxy_pod(root_spec.name)
25
+
26
+ git = source[:git]
27
+ tag = source[:tag]
28
+ submodules = source.has_key?(:submodules) ? source[:submodules] : false
29
+ new_url = proxy_source.build_proxy_source(root_spec.name, git, tag, submodules)
30
+ source = {
31
+ :http => new_url,
32
+ :type => "tgz",
33
+ }
34
+ UI.message "spec new source: #{source}" if show_output
35
+ root_spec.source = source
36
+ end
37
+ end
38
+ specs_by_target
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,3 @@
1
+ require 'cocoapods-cache-proxy/command'
2
+ require 'hook'
3
+
@@ -0,0 +1,17 @@
1
+ require 'cocoapods'
2
+ require 'cocoapods-downloader'
3
+ require 'cocoapods-cache-proxy/native/native'
4
+ require 'cocoapods-cache-proxy/helper/helper'
5
+ require 'yaml'
6
+ require 'uri'
7
+
8
+
9
+ Pod::HooksManager.register('cocoapods-cache-proxy', :source_provider) do |context, options|
10
+ show_output = Pod::Config.instance.verbose?
11
+ Pod::UI.message 'cocoapods-cache-proxy received source_provider hook' if show_output
12
+
13
+ return unless (proxy_name = options['proxy'])
14
+ raise Pod::Informative.exception "cache proxy source: `#{proxy_name}` does not exist." unless CPSH.check_cache_proxy_source_conf_exists(proxy_name)
15
+ Pod::UI.message "proxy_name: #{proxy_name}" if show_output
16
+ Pod::Config.instance.set_cache_proxy_source(proxy_name)
17
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cocoapods-cache-proxy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - '0x1306a94'
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-01-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cocoapods
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: cocoapods-core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: A short description of cocoapods-cache-proxy.
70
+ email:
71
+ - 0x1306a94@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/cocoapods-cache-proxy.rb
77
+ - lib/cocoapods-cache-proxy/command.rb
78
+ - lib/cocoapods-cache-proxy/command/cache_proxy.rb
79
+ - lib/cocoapods-cache-proxy/command/cache_proxy/add.rb
80
+ - lib/cocoapods-cache-proxy/command/cache_proxy/list.rb
81
+ - lib/cocoapods-cache-proxy/command/cache_proxy/remove.rb
82
+ - lib/cocoapods-cache-proxy/command/cache_proxy/update.rb
83
+ - lib/cocoapods-cache-proxy/gem_version.rb
84
+ - lib/cocoapods-cache-proxy/helper/cache_proxy_source_helper.rb
85
+ - lib/cocoapods-cache-proxy/helper/helper.rb
86
+ - lib/cocoapods-cache-proxy/native/cache_proxy_source.rb
87
+ - lib/cocoapods-cache-proxy/native/config.rb
88
+ - lib/cocoapods-cache-proxy/native/downloader.rb
89
+ - lib/cocoapods-cache-proxy/native/installer.rb
90
+ - lib/cocoapods-cache-proxy/native/native.rb
91
+ - lib/cocoapods-cache-proxy/native/podfile_dsl.rb
92
+ - lib/cocoapods-cache-proxy/native/resolver.rb
93
+ - lib/cocoapods_plugin.rb
94
+ - lib/hook.rb
95
+ homepage: https://github.com/0x1306a94/cocoapods-cache-proxy
96
+ licenses:
97
+ - MIT
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.7.9
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: A longer description of cocoapods-cache-proxy.
119
+ test_files: []