lg_pod_plugin 1.1.2 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/bin/lg +2 -2
  3. data/lib/command/command.rb +1 -2
  4. data/lib/command/install.rb +7 -2
  5. data/lib/command/update.rb +4 -1
  6. data/lib/lg_pod_plugin/config/l_config.rb +59 -0
  7. data/lib/lg_pod_plugin/config/lockfile_model.rb +59 -0
  8. data/lib/lg_pod_plugin/config/podspec.rb +266 -0
  9. data/lib/lg_pod_plugin/config/target.rb +33 -0
  10. data/lib/lg_pod_plugin/{database.rb → db/database.rb} +80 -28
  11. data/lib/lg_pod_plugin/downloader/downloader.rb +156 -0
  12. data/lib/lg_pod_plugin/{l_cache.rb → downloader/l_cache.rb} +44 -29
  13. data/lib/lg_pod_plugin/downloader/request.rb +233 -0
  14. data/lib/lg_pod_plugin/git/git_clone.rb +85 -0
  15. data/lib/lg_pod_plugin/git/git_download.rb +53 -0
  16. data/lib/lg_pod_plugin/git/github_api.rb +137 -0
  17. data/lib/lg_pod_plugin/git/github_archive.rb +165 -0
  18. data/lib/lg_pod_plugin/git/gitlab_api.rb +265 -0
  19. data/lib/lg_pod_plugin/git/gitlab_archive.rb +177 -0
  20. data/lib/lg_pod_plugin/git/http_download.rb +39 -0
  21. data/lib/lg_pod_plugin/installer/PodDownload +0 -0
  22. data/lib/lg_pod_plugin/installer/concurrency.rb +21 -0
  23. data/lib/lg_pod_plugin/installer/install.rb +111 -0
  24. data/lib/lg_pod_plugin/installer/main.rb +63 -0
  25. data/lib/lg_pod_plugin/installer/project.rb +47 -0
  26. data/lib/lg_pod_plugin/net/l_uri.rb +88 -0
  27. data/lib/lg_pod_plugin/net/net-ping.rb +27 -0
  28. data/lib/lg_pod_plugin/pod/external_pod.rb +21 -0
  29. data/lib/lg_pod_plugin/pod/release-pod.rb +158 -0
  30. data/lib/lg_pod_plugin/utils/aes-crypt.rb +82 -0
  31. data/lib/lg_pod_plugin/{file_path.rb → utils/file_path.rb} +3 -5
  32. data/lib/lg_pod_plugin/utils/l_util.rb +133 -0
  33. data/lib/lg_pod_plugin/{log.rb → utils/log.rb} +1 -1
  34. data/lib/lg_pod_plugin/{string.rb → utils/string.rb} +0 -0
  35. data/lib/lg_pod_plugin/version.rb +1 -1
  36. data/lib/lg_pod_plugin.rb +24 -17
  37. data/lib/sqlite3-1.5.3-arm64-darwin/API_CHANGES.md +49 -0
  38. data/lib/sqlite3-1.5.3-arm64-darwin/CHANGELOG.md +462 -0
  39. data/lib/sqlite3-1.5.3-arm64-darwin/CONTRIBUTING.md +24 -0
  40. data/lib/sqlite3-1.5.3-arm64-darwin/ChangeLog.cvs +88 -0
  41. data/lib/sqlite3-1.5.3-arm64-darwin/README.md +235 -0
  42. data/lib/sqlite3-1.5.3-arm64-darwin/dependencies.yml +14 -0
  43. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/aggregator.c +274 -0
  44. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/aggregator.h +12 -0
  45. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/backup.c +168 -0
  46. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/backup.h +15 -0
  47. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/database.c +853 -0
  48. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/database.h +17 -0
  49. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/exception.c +98 -0
  50. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/exception.h +8 -0
  51. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/extconf.rb +251 -0
  52. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/sqlite3.c +163 -0
  53. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/sqlite3_ruby.h +48 -0
  54. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/statement.c +442 -0
  55. data/lib/sqlite3-1.5.3-arm64-darwin/ext/sqlite3/statement.h +16 -0
  56. data/lib/sqlite3-1.5.3-arm64-darwin/faq/faq.md +431 -0
  57. data/lib/sqlite3-1.5.3-arm64-darwin/faq/faq.rb +145 -0
  58. data/lib/sqlite3-1.5.3-arm64-darwin/faq/faq.yml +426 -0
  59. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/2.6/sqlite3_native.bundle +0 -0
  60. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/2.7/sqlite3_native.bundle +0 -0
  61. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/3.0/sqlite3_native.bundle +0 -0
  62. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/3.1/sqlite3_native.bundle +0 -0
  63. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/constants.rb +50 -0
  64. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/database.rb +741 -0
  65. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/errors.rb +35 -0
  66. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/pragmas.rb +595 -0
  67. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/resultset.rb +187 -0
  68. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/statement.rb +145 -0
  69. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/translator.rb +118 -0
  70. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/value.rb +57 -0
  71. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3/version.rb +23 -0
  72. data/lib/sqlite3-1.5.3-arm64-darwin/lib/sqlite3.rb +15 -0
  73. data/lib/sqlite3-1.5.3-arm64-darwin/test/helper.rb +27 -0
  74. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_backup.rb +33 -0
  75. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_collation.rb +82 -0
  76. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_database.rb +545 -0
  77. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_database_flags.rb +95 -0
  78. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_database_readonly.rb +36 -0
  79. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_database_readwrite.rb +41 -0
  80. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_deprecated.rb +44 -0
  81. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_encoding.rb +155 -0
  82. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration.rb +507 -0
  83. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration_aggregate.rb +336 -0
  84. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration_open_close.rb +30 -0
  85. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration_pending.rb +115 -0
  86. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration_resultset.rb +142 -0
  87. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_integration_statement.rb +194 -0
  88. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_result_set.rb +37 -0
  89. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_sqlite3.rb +30 -0
  90. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_statement.rb +263 -0
  91. data/lib/sqlite3-1.5.3-arm64-darwin/test/test_statement_execute.rb +35 -0
  92. data/lib/sqlite3-1.5.3-x86_64-darwin/API_CHANGES.md +49 -0
  93. data/lib/sqlite3-1.5.3-x86_64-darwin/CHANGELOG.md +462 -0
  94. data/lib/sqlite3-1.5.3-x86_64-darwin/CONTRIBUTING.md +24 -0
  95. data/lib/sqlite3-1.5.3-x86_64-darwin/ChangeLog.cvs +88 -0
  96. data/lib/sqlite3-1.5.3-x86_64-darwin/README.md +235 -0
  97. data/lib/sqlite3-1.5.3-x86_64-darwin/dependencies.yml +14 -0
  98. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/aggregator.c +274 -0
  99. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/aggregator.h +12 -0
  100. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/backup.c +168 -0
  101. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/backup.h +15 -0
  102. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/database.c +853 -0
  103. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/database.h +17 -0
  104. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/exception.c +98 -0
  105. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/exception.h +8 -0
  106. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/extconf.rb +251 -0
  107. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/sqlite3.c +163 -0
  108. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/sqlite3_ruby.h +48 -0
  109. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/statement.c +442 -0
  110. data/lib/sqlite3-1.5.3-x86_64-darwin/ext/sqlite3/statement.h +16 -0
  111. data/lib/sqlite3-1.5.3-x86_64-darwin/faq/faq.md +431 -0
  112. data/lib/sqlite3-1.5.3-x86_64-darwin/faq/faq.rb +145 -0
  113. data/lib/sqlite3-1.5.3-x86_64-darwin/faq/faq.yml +426 -0
  114. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/2.6/sqlite3_native.bundle +0 -0
  115. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/2.7/sqlite3_native.bundle +0 -0
  116. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/3.0/sqlite3_native.bundle +0 -0
  117. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/3.1/sqlite3_native.bundle +0 -0
  118. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/constants.rb +50 -0
  119. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/database.rb +741 -0
  120. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/errors.rb +35 -0
  121. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/pragmas.rb +595 -0
  122. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/resultset.rb +187 -0
  123. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/statement.rb +145 -0
  124. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/translator.rb +118 -0
  125. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/value.rb +57 -0
  126. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3/version.rb +23 -0
  127. data/lib/sqlite3-1.5.3-x86_64-darwin/lib/sqlite3.rb +15 -0
  128. data/lib/sqlite3-1.5.3-x86_64-darwin/test/helper.rb +27 -0
  129. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_backup.rb +33 -0
  130. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_collation.rb +82 -0
  131. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_database.rb +545 -0
  132. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_database_flags.rb +95 -0
  133. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_database_readonly.rb +36 -0
  134. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_database_readwrite.rb +41 -0
  135. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_deprecated.rb +44 -0
  136. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_encoding.rb +155 -0
  137. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration.rb +507 -0
  138. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration_aggregate.rb +336 -0
  139. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration_open_close.rb +30 -0
  140. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration_pending.rb +115 -0
  141. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration_resultset.rb +142 -0
  142. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_integration_statement.rb +194 -0
  143. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_result_set.rb +37 -0
  144. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_sqlite3.rb +30 -0
  145. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_statement.rb +263 -0
  146. data/lib/sqlite3-1.5.3-x86_64-darwin/test/test_statement_execute.rb +35 -0
  147. metadata +146 -50
  148. data/lib/lg_pod_plugin/downloader.rb +0 -57
  149. data/lib/lg_pod_plugin/gitlab_api.rb +0 -151
  150. data/lib/lg_pod_plugin/gitlab_archive.rb +0 -294
  151. data/lib/lg_pod_plugin/gitlab_download.rb +0 -213
  152. data/lib/lg_pod_plugin/install.rb +0 -156
  153. data/lib/lg_pod_plugin/l_config.rb +0 -83
  154. data/lib/lg_pod_plugin/l_util.rb +0 -134
  155. data/lib/lg_pod_plugin/net-ping.rb +0 -41
  156. data/lib/lg_pod_plugin/podspec.rb +0 -156
  157. data/lib/lg_pod_plugin/request.rb +0 -185
@@ -1,83 +0,0 @@
1
- require 'json'
2
- require 'uri'
3
- require 'io/console'
4
- require_relative 'request'
5
- require_relative 'database'
6
- require_relative 'gitlab_api'
7
-
8
- module LgPodPlugin
9
-
10
- class LConfig
11
- attr_accessor :host
12
- attr_accessor :base_url
13
- attr_accessor :project_name
14
- attr_accessor :access_token
15
- attr_accessor :refresh_token
16
- attr_accessor :project
17
-
18
- def initialize
19
- end
20
-
21
- public
22
- def self.getConfig(git)
23
- return nil if git.include?("github.com") || git.include?("gitee.com") || git.include?("coding.net") || git.include?("code.aliyun.com")
24
- ip_address = LRequest.shared.net_ping.ip
25
- network_ok = LRequest.shared.net_ping.network_ok
26
- return nil unless ip_address && network_ok
27
- if git.include?("ssh") || git.include?("git@gitlab") || git.include?("git@")
28
- host = "http://" + ip_address
29
- else
30
- uri = LRequest.shared.net_ping.uri
31
- host = uri ? ("#{uri.scheme}://" + ip_address) : ("http://" + ip_address)
32
- end
33
- user_id = LUserAuthInfo.get_user_id(host)
34
- user_info = LSqliteDb.shared.query_user_info(user_id)
35
- unless user_info
36
- LgPodPlugin.log_yellow "请输入 `#{uri}` 的用户名"
37
- username = STDIN.gets.chomp
38
- LgPodPlugin.log_yellow "请输入 `#{uri}` 的密码"
39
- password = STDIN.noecho(&:gets).chomp
40
- GitLabAPI.request_gitlab_access_token(host, username, password)
41
- return nil unless user_info = LSqliteDb.shared.query_user_info(user_id)
42
- end
43
-
44
- time = Time.now.to_i
45
- # 判断 token 是否失效
46
- if user_info.expires_in <= time
47
- new_user_info = GitLabAPI.refresh_gitlab_access_token(host, user_info.refresh_token)
48
- unless new_user_info
49
- username = user_info.username
50
- password = user_info.password
51
- unless username && password
52
- LgPodPlugin.log_yellow "请输入 `#{uri}` 的用户名"
53
- username = STDIN.gets.chomp
54
- LgPodPlugin.log_yellow "请输入 `#{uri}` 的密码"
55
- password = STDIN.noecho(&:gets).chomp
56
- end
57
- GitLabAPI.request_gitlab_access_token(host, username, password)
58
- return nil unless new_user_info = LSqliteDb.shared.query_user_info(user_id)
59
- end
60
-
61
- config = LConfig.new
62
- config.host = host
63
- config.access_token = new_user_info.access_token
64
- config.refresh_token = new_user_info.refresh_token
65
- config.base_url = LUtils.get_gitlab_base_url(git)
66
- config.project_name = LUtils.get_git_project_name(git)
67
- config.project = LSqliteDb.shared.query_project_info(config.project_name, git)
68
- return config
69
- else
70
- config = LConfig.new
71
- config.host = host
72
- config.access_token = user_info.access_token
73
- config.refresh_token = user_info.refresh_token
74
- config.base_url = LUtils.get_gitlab_base_url(git)
75
- config.project_name = LUtils.get_git_project_name(git)
76
- config.project = LSqliteDb.shared.query_project_info(config.project_name, git)
77
- return config
78
- end
79
-
80
- end
81
-
82
- end
83
- end
@@ -1,134 +0,0 @@
1
- require 'resolv'
2
- require "ipaddr"
3
- require 'archive/zip'
4
- require_relative 'log'
5
- require_relative 'l_config'
6
-
7
- module LgPodPlugin
8
- class LUtils
9
-
10
- #判断对象是不是 String
11
- def self.is_string(obj)
12
- if "#{obj.class}" == "String"
13
- return true
14
- else
15
- return false
16
- end
17
- end
18
-
19
- # 解压文件
20
- def self.unzip_file (zip_file, dest_dir)
21
- begin
22
- Archive::Zip.extract(
23
- zip_file,
24
- dest_dir,
25
- :symlinks => true
26
- )
27
- return true
28
- rescue => err
29
- return false
30
- end
31
-
32
- end
33
-
34
- # 下载 zip 格式文件
35
- def self.download_gitlab_zip_file(download_url, token, file_name)
36
- cmds = ['curl']
37
- cmds << "--header \"Authorization: Bearer #{token}\"" if token
38
- # cmds << "--progress-bar"
39
- cmds << "-o #{file_name}"
40
- cmds << "--connect-timeout 15"
41
- cmds << "--retry 3"
42
- cmds << download_url
43
- cmds_to_s = cmds.join(" ")
44
- system(cmds_to_s)
45
- end
46
-
47
- # gitlab 下载压缩文件
48
- def self.download_github_zip_file(download_url, file_name)
49
- cmds = ['curl']
50
- cmds << "-o #{file_name}"
51
- cmds << "--connect-timeout 15"
52
- cmds << "--retry 3"
53
- cmds << download_url
54
- cmds_to_s = cmds.join(" ")
55
- system(cmds_to_s)
56
- end
57
-
58
- def self.git_to_uri(git)
59
- begin
60
- uri = URI(git)
61
- rescue
62
- if git.include?("git@") && git.include?(":")
63
- uri = URI("http://" + git[4...git.length].split(":").first)
64
- else
65
- return nil
66
- end
67
- end
68
- end
69
-
70
- def self.commit_from_ls_remote(output, branch_name)
71
- return nil if branch_name.nil?
72
- encoded_branch_name = branch_name.dup.force_encoding(Encoding::ASCII_8BIT)
73
- if branch_name == "HEAD"
74
- match = %r{([a-z0-9]*)\t#{Regexp.quote(encoded_branch_name)}}.match(output)
75
- else
76
- match = %r{([a-z0-9]*)\trefs\/(heads|tags)\/#{Regexp.quote(encoded_branch_name)}}.match(output)
77
- end
78
- # LgPodPlugin.log_green match[0] unless match.nil?
79
- match[1] unless match.nil?
80
- end
81
-
82
- #截取git-url 拿到项目绝对名称 比如 l-base-ios
83
- def self.get_git_project_name(git)
84
- self.get_gitlab_base_url(git).split("/").last
85
- end
86
-
87
- # 是否能够使用 gitlab 下载 zip 文件
88
- def self.is_use_gitlab_archive_file(git)
89
- return false if git.include?("https://github.com") || git.include?("https://gitee.com")
90
- config = LRequest.shared.config
91
- return false if (!config || !config.access_token)
92
- return true if project = config.project
93
- project_name = self.get_git_project_name(git)
94
- LRequest.shared.config.project = GitLabAPI.request_project_info(config.host, project_name, config.access_token, git)
95
- return true if LRequest.shared.config.project
96
- end
97
-
98
- # 截取 url
99
- def self.get_gitlab_base_url(git)
100
- if git.include?(".git")
101
- base_url = git.split(".git").first
102
- else
103
- base_url = git
104
- end
105
- end
106
-
107
- # 根据参数生成下载 url
108
- def self.get_gitlab_download_url(base_url, branch, tag, commit, project_name)
109
- if base_url.include?("http:") || base_url.include?("https:")
110
- if branch
111
- return base_url + "/-/archive/" + branch + "/#{project_name}-#{branch}.zip"
112
- elsif tag
113
- return base_url + "/-/archive/" + tag + "/#{project_name}-#{tag}.zip"
114
- elsif commit
115
- return base_url + "/-/archive/" + commit + "/#{project_name}-#{commit}.zip"
116
- else
117
- return nil
118
- end
119
- end
120
- return nil unless base_url.include?("ssh://git@gitlab") || base_url.include?("git@")
121
- project = LRequest.shared.config.project
122
- if project && project.web_url && project.web_url.include?("http")
123
- self.get_gitlab_download_url(project.web_url, branch, tag, commit, project_name)
124
- else
125
- return nil
126
- end
127
- end
128
-
129
- def self.url_encode(url)
130
- url.to_s.b.gsub(/[^a-zA-Z0-9_\-.~]/n) { |m| sprintf('%%%02X', m.unpack1('C')) }
131
- end
132
-
133
- end
134
- end
@@ -1,41 +0,0 @@
1
- require 'uri'
2
- require 'resolv'
3
- require "ipaddr"
4
- require_relative 'l_util'
5
-
6
- module LgPodPlugin
7
-
8
- class Ping
9
- attr_accessor :uri
10
- attr_accessor :ip
11
- attr_accessor :network_ok
12
- def initialize(url)
13
- self.uri = LUtils.git_to_uri(url)
14
- end
15
-
16
- def ping
17
- return false unless self.uri
18
- result = %x(ping #{uri.host} -t 1)
19
- if result.include?("timeout")
20
- return false
21
- end
22
- if result && result.include?("(") && result.include?("):")
23
- ip_address = result.split("(").last.split(")").first
24
- begin
25
- if IPAddr.new ip_address
26
- self.ip = ip_address
27
- return true
28
- else
29
- return false
30
- end
31
- rescue
32
- return false
33
- end
34
- else
35
- return false
36
- end
37
- end
38
-
39
- end
40
-
41
- end
@@ -1,156 +0,0 @@
1
- require 'cocoapods'
2
- require 'cocoapods-core'
3
-
4
- module LgPodPlugin
5
-
6
- class PodSpec
7
- attr_accessor :source_files
8
- def self.form_file(path)
9
- spec = Pod::Specification.from_file(path)
10
- return PodSpec.new(spec)
11
- end
12
-
13
- def initialize(spec)
14
- set = Set[]
15
- attributes_hash = spec.send(:attributes_hash)
16
- return nil unless attributes_hash.is_a?(Hash)
17
- license = attributes_hash["license"]
18
- if license.is_a?(Hash)
19
- license_file = license["file"]
20
- set.add(license_file) if license_file
21
- else
22
- set.add("LICENSE")
23
- end
24
- # 解析主模块依赖信息
25
- set.merge(parse_subspec_with(attributes_hash))
26
- subspecs = spec.subspecs
27
- unless subspecs.is_a?(Array)
28
- self.source_files = set
29
- return
30
- end
31
- subspecs.each do |sub_spec|
32
- next unless sub_attributes_hash = sub_spec.send(:attributes_hash)
33
- next unless sub_attributes_hash.is_a?(Hash)
34
- sub_set = self.parse_subspec_with(sub_attributes_hash)
35
- next if sub_set.empty?
36
- set.merge(sub_set)
37
- end
38
- self.source_files = set
39
- end
40
-
41
- # 公共解析解析subspec
42
- def parse_subspec_with(hash)
43
- set = Set[]
44
- source_files = self.parse_source_files(hash["source_files"])
45
- set.merge(source_files) unless source_files.empty?
46
- resources = self.parse_resource_files(hash["resource"] ||= hash["resources"])
47
- set.merge(resources) unless resources.empty?
48
- resource_bundles = self.parse_resource_bundles(hash["resource_bundle"] ||= hash["resource_bundles"])
49
- set.merge(resource_bundles) unless resource_bundles.empty?
50
- project_header_files = self.parse_project_header_files(hash["project_header_files"])
51
- set.merge(resource_bundles) unless project_header_files.empty?
52
- private_header_files = self.parse_private_header_files(hash["private_header_files"])
53
- set.merge(private_header_files) unless private_header_files.empty?
54
- vendored_frameworks = self.parse_vendored_frameworks(hash["vendored_frameworks"])
55
- set.merge(vendored_frameworks) unless vendored_frameworks.empty?
56
- vendored_library = self.parse_vendored_library(hash["vendored_library"] ||= hash["vendored_libraries"])
57
- set.merge(vendored_library) unless vendored_library.empty?
58
- #parse_preserve_path
59
- preserve_paths = self.parse_preserve_path(hash["preserve_path"] ||= hash["preserve_paths"])
60
- set.merge(preserve_paths) unless preserve_paths.empty?
61
- module_map = self.parse_module_map(hash["module_map"])
62
- set.merge(module_map) unless module_map.empty?
63
- return set
64
- end
65
-
66
- # 公共解析文件路径的方法
67
- def parse_public_source_filse(source_files)
68
- return [] unless source_files
69
- array = []
70
- if LUtils.is_string(source_files)
71
- if source_files.include?("/")
72
- array.append(source_files.split("/").first)
73
- else
74
- array.append(source_files)
75
- end
76
- elsif source_files.is_a?(Array)
77
- source_files.each do |element|
78
- next unless LUtils.is_string(element)
79
- if element.include?("/")
80
- array.append(element.split("/").first)
81
- else
82
- array.append(element)
83
- end
84
- end
85
- elsif source_files.is_a?(Hash)
86
- source_files.each do |key,val|
87
- if LUtils.is_string(val)
88
- if val.include?("/")
89
- array.append(val.split("/").first)
90
- else
91
- array.append(val)
92
- end
93
- elsif val.is_a?(Array)
94
- val.each do |element|
95
- next unless LUtils.is_string(element)
96
- if element.include?("/")
97
- array.append(element.split("/").first)
98
- else
99
- array.append(element)
100
- end
101
- end
102
- end
103
- end
104
- end
105
- return array
106
- end
107
-
108
- # 解析source_fils路径
109
- def parse_source_files(source_files)
110
- return self.parse_public_source_filse(source_files)
111
- end
112
-
113
- # 解析 resource所在路径
114
- def parse_resource_files(source_files)
115
- return self.parse_public_source_filse(source_files)
116
- end
117
-
118
- # 解析public_header_files字段的值
119
- def parse_public_header_files(source_files)
120
- return self.parse_public_source_filse(source_files)
121
- end
122
- # 解析 parse_resource_bundles
123
- def parse_resource_bundles(source_files)
124
- return self.parse_public_source_filse(source_files)
125
- end
126
- # 解析 project_header_files
127
- def parse_project_header_files(source_files)
128
- return self.parse_public_source_filse(source_files)
129
- end
130
-
131
- # 解析 private_header_files
132
- def parse_private_header_files(source_files)
133
- return self.parse_public_source_filse(source_files)
134
- end
135
- # 解析 vendored_frameworks
136
- def parse_vendored_frameworks(source_files)
137
- return self.parse_public_source_filse(source_files)
138
- end
139
- # 解析 parse_vendored_library
140
- def parse_vendored_library(source_files)
141
- return self.parse_public_source_filse(source_files)
142
- end
143
-
144
- # 解析 parse_preserve_path
145
- def parse_preserve_path(source_files)
146
- return self.parse_public_source_filse(source_files)
147
- end
148
-
149
- # 解析 module_map
150
- def parse_module_map(source_files)
151
- return self.parse_public_source_filse(source_files)
152
- end
153
-
154
- end
155
-
156
- end
@@ -1,185 +0,0 @@
1
- require 'yaml'
2
- require 'json'
3
- require 'net/http'
4
- require 'singleton'
5
- require_relative 'l_config'
6
- require_relative 'l_cache'
7
- require_relative 'net-ping'
8
- require_relative 'downloader'
9
- require_relative 'gitlab_download'
10
- module LgPodPlugin
11
-
12
- class LRequest
13
- include Singleton
14
- # pod name
15
- attr_accessor :name
16
- # 当前token
17
- attr_accessor :token
18
- # 缓存
19
- attr_accessor :cache
20
- # 配置
21
- attr_accessor :config
22
- # 是否更新
23
- attr_accessor :is_update
24
- # 工作目录
25
- attr_accessor :workspace
26
- # 是否是还有 git 地址参数
27
- attr_accessor :single_git
28
- # git 工具类
29
- attr_accessor :git_util
30
- # 需要更新的 pod 集合
31
- attr_accessor :libs
32
- # 下载类
33
- attr_accessor :downloader
34
- # lock_info
35
- attr_accessor :lock_info
36
- # 实际下载请求参数
37
- attr_accessor :request_params
38
- # 传入的请求参数
39
- attr_accessor :checkout_options
40
- # 网络ip 信息
41
- attr_accessor :net_ping
42
-
43
- public
44
- def get_lock_info
45
- lock_file = self.workspace.join("Podfile.lock")
46
- if lock_file.exist?
47
- begin
48
- json = YAML.load_file(lock_file.to_path)
49
- rescue
50
- json = {}
51
- end
52
- external_source = json["EXTERNAL SOURCES"] ||= {}
53
- checkout_options = json["CHECKOUT OPTIONS"] ||= {}
54
- { "external_source" => external_source, "checkout_options" => checkout_options }
55
- else
56
- { "external_source" => {}, "checkout_options" => {} }
57
- end
58
- end
59
-
60
- # 获取缓存用的hash_map
61
- public
62
- def get_cache_key_params
63
- hash_map = Hash.new
64
- git = self.checkout_options[:git] ||= self.request_params[:git]
65
- tag = self.checkout_options[:tag] ||= self.request_params[:tag]
66
- branch = self.checkout_options[:branch] ||= self.request_params[:branch]
67
- commit = self.checkout_options[:commit] ||= self.request_params[:commit]
68
- return hash_map unless git
69
- hash_map[:git] = git
70
- if git && commit
71
- hash_map[:commit] = commit
72
- elsif git && tag
73
- hash_map[:tag] = tag
74
- elsif git && branch && commit
75
- hash_map[:commit] = commit
76
- end
77
- hash_map
78
- end
79
-
80
- public
81
- def get_lock_params
82
- begin
83
- _external_source = self.lock_info["external_source"][self.name] ||= {}
84
- _checkout_options = self.lock_info["checkout_options"][self.name] ||= {}
85
- rescue
86
- _external_source = {}
87
- _checkout_options = {}
88
- end
89
-
90
- git = self.checkout_options[:git]
91
- tag = self.checkout_options[:tag]
92
- commit = self.checkout_options[:commit]
93
- branch = self.checkout_options[:branch]
94
-
95
- lock_commit = _checkout_options[:commit] ||= ""
96
- lock_branch = _external_source[:branch] ||= ""
97
- hash_map = Hash.new
98
- hash_map[:git] = git if git
99
- if git && tag
100
- hash_map[:tag] = tag
101
- return hash_map
102
- elsif git && branch
103
- if branch == lock_branch && !self.is_update
104
- hash_map[:branch] = branch if branch
105
- if lock_commit && !lock_commit.empty?
106
- hash_map[:commit] = lock_commit
107
- end
108
- return hash_map
109
- else
110
- hash_map[:branch] = branch if branch
111
- _, new_commit = LGitUtil.git_ls_remote_refs(self.name ,git, branch, tag, commit)
112
- if new_commit && !new_commit.empty?
113
- hash_map[:commit] = new_commit
114
- elsif lock_commit && !lock_commit.empty?
115
- hash_map[:commit] = lock_commit
116
- end
117
- if !new_commit || !lock_commit || new_commit.empty? || lock_commit.empty?
118
- hash_map["is_delete"] = false
119
- elsif (new_commit != lock_commit)
120
- hash_map["is_delete"] = false
121
- else
122
- hash_map["is_delete"] = true
123
- end
124
- end
125
- elsif git && commit
126
- hash_map[:commit] = commit if commit
127
- return hash_map
128
- else
129
- _, new_commit = LGitUtil.git_ls_remote_refs(self.name ,git, nil, nil, nil)
130
- if new_commit && !new_commit.empty?
131
- hash_map[:commit] = new_commit
132
- elsif lock_commit && !lock_commit.empty?
133
- hash_map[:commit] = lock_commit
134
- end
135
- if !new_commit || !lock_commit || new_commit.empty? || lock_commit.empty?
136
- hash_map["is_delete"] = false
137
- elsif (new_commit != lock_commit)
138
- hash_map["is_delete"] = false
139
- else
140
- hash_map["is_delete"] = true
141
- end
142
- end
143
- hash_map
144
- end
145
-
146
- public
147
-
148
- #获取下载参数
149
- def get_request_params
150
- if self.lock_info == nil
151
- self.lock_info = self.get_lock_info
152
- end
153
- Hash.new.merge!(self.get_lock_params)
154
- end
155
-
156
- public
157
- def setup_pod_info(name, workspace, options = {})
158
- self.name = name
159
- tag = options[:tag]
160
- git = options[:git]
161
- commit = options[:commit]
162
- branch = options[:branch]
163
- self.workspace = workspace
164
- if (git && branch) || (git && commit) || (git && tag)
165
- self.single_git = false
166
- else
167
- self.single_git = true
168
- end
169
- self.net_ping = Ping.new(git)
170
- self.net_ping.network_ok = self.net_ping.ping
171
- self.checkout_options = Hash.new.deep_merge(options)
172
- self.request_params = self.get_request_params
173
- self.config = LConfig.getConfig(git)
174
- self.cache = LCache.new(self.workspace)
175
- self.git_util = LGitUtil.new(name, self.checkout_options)
176
- self.downloader = LDownloader.new(name, self.checkout_options)
177
- end
178
-
179
- def self.shared
180
- return LRequest.instance
181
- end
182
-
183
- end
184
-
185
- end