carthage_remote_cache 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 +7 -0
- data/.gitignore +5 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +62 -0
- data/LICENSE +201 -0
- data/README.md +83 -0
- data/Rakefile +10 -0
- data/bin/carthagerc +85 -0
- data/carthage_remote_cache.gemspec +27 -0
- data/dev/console +14 -0
- data/dev/setup +7 -0
- data/dev/start_server +8 -0
- data/lib/api.rb +40 -0
- data/lib/carthage_archive.rb +81 -0
- data/lib/carthage_dependency.rb +65 -0
- data/lib/carthage_remote_cache.rb +13 -0
- data/lib/commands/download_command.rb +67 -0
- data/lib/commands/init_command.rb +26 -0
- data/lib/commands/server_command.rb +16 -0
- data/lib/commands/upload_command.rb +63 -0
- data/lib/commands.rb +7 -0
- data/lib/configuration.rb +81 -0
- data/lib/constants.rb +8 -0
- data/lib/errors.rb +13 -0
- data/lib/log.rb +4 -0
- data/lib/networking.rb +96 -0
- data/lib/server/config.ru +6 -0
- data/lib/server/server_app.rb +93 -0
- data/lib/utils.rb +62 -0
- data/lib/version_file.rb +90 -0
- metadata +174 -0
data/lib/version_file.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
# .version file representation, see Carthage documentation on them:
|
5
|
+
# https://github.com/Carthage/Carthage/blob/master/Documentation/VersionFile.md
|
6
|
+
class VersionFile
|
7
|
+
|
8
|
+
attr_reader :path, :version, :frameworks_by_platform
|
9
|
+
|
10
|
+
def initialize(path)
|
11
|
+
@path = path
|
12
|
+
parse
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a Hash, e.g.
|
16
|
+
# ```
|
17
|
+
# {
|
18
|
+
# "CocoaLumberjack" => [:iOS, :watchOS],
|
19
|
+
# "Lottie" => [:iOS],
|
20
|
+
# }
|
21
|
+
# ```
|
22
|
+
def platforms_by_framework
|
23
|
+
result = Hash.new { |h, k| h[k] = [] }
|
24
|
+
for framework_name in framework_names do
|
25
|
+
@frameworks_by_platform.each do |platform, framework_names_in_platform|
|
26
|
+
if framework_names_in_platform.include?(framework_name)
|
27
|
+
result[framework_name] << platform
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
result
|
32
|
+
end
|
33
|
+
|
34
|
+
# Unique array of framework names.
|
35
|
+
def framework_names
|
36
|
+
@frameworks_by_platform.values.flatten.uniq.sort
|
37
|
+
end
|
38
|
+
|
39
|
+
# Total number of frameworks accross all platforms.
|
40
|
+
def number_of_frameworks
|
41
|
+
@frameworks_by_platform.values.flatten.count
|
42
|
+
end
|
43
|
+
|
44
|
+
def move_to_build_dir
|
45
|
+
basename = File.basename(@path)
|
46
|
+
target_path = File.join(CARTHAGE_BUILD_DIR, basename)
|
47
|
+
FileUtils.mv(@path, target_path)
|
48
|
+
@path = target_path
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove
|
52
|
+
FileUtils.rm(@path)
|
53
|
+
end
|
54
|
+
|
55
|
+
def same_content?(other_version_file)
|
56
|
+
if other_version_file.nil?
|
57
|
+
false
|
58
|
+
else
|
59
|
+
FileUtils.compare_file(@path, other_version_file.path)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def parse
|
66
|
+
raise "File #{path} doesn't exist, has carthage been bootstrapped?" unless File.exist?(@path)
|
67
|
+
|
68
|
+
file = File.read(@path)
|
69
|
+
json = JSON.parse(file)
|
70
|
+
|
71
|
+
@version = json['commitish']
|
72
|
+
raise "Version is missing in #{@path}" if @version.nil? || @version.empty?
|
73
|
+
|
74
|
+
@frameworks_by_platform = {
|
75
|
+
:iOS => parse_platform_array(json['iOS']),
|
76
|
+
:macOS => parse_platform_array(json['Mac']),
|
77
|
+
:tvOS => parse_platform_array(json['tvOS']),
|
78
|
+
:watchOS => parse_platform_array(json['watchOS']),
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
def parse_platform_array(array)
|
83
|
+
if array.kind_of?(Array)
|
84
|
+
array.map { |entry| entry['name'] }
|
85
|
+
else
|
86
|
+
[]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
metadata
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: carthage_remote_cache
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Juraj Blahunka
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rerun
|
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: concurrent-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.5
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.5
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.0.4
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.0.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rest-client
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.0.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.0.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sinatra
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.0.0
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.0.0
|
111
|
+
description: Centralized cache to serve carthage frameworks. Useful for distributed
|
112
|
+
CI setup with several build machines.
|
113
|
+
email:
|
114
|
+
- jblahunka@kayak.com
|
115
|
+
executables:
|
116
|
+
- carthagerc
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- ".gitignore"
|
121
|
+
- Gemfile
|
122
|
+
- Gemfile.lock
|
123
|
+
- LICENSE
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- bin/carthagerc
|
127
|
+
- carthage_remote_cache.gemspec
|
128
|
+
- dev/console
|
129
|
+
- dev/setup
|
130
|
+
- dev/start_server
|
131
|
+
- lib/api.rb
|
132
|
+
- lib/carthage_archive.rb
|
133
|
+
- lib/carthage_dependency.rb
|
134
|
+
- lib/carthage_remote_cache.rb
|
135
|
+
- lib/commands.rb
|
136
|
+
- lib/commands/download_command.rb
|
137
|
+
- lib/commands/init_command.rb
|
138
|
+
- lib/commands/server_command.rb
|
139
|
+
- lib/commands/upload_command.rb
|
140
|
+
- lib/configuration.rb
|
141
|
+
- lib/constants.rb
|
142
|
+
- lib/errors.rb
|
143
|
+
- lib/log.rb
|
144
|
+
- lib/networking.rb
|
145
|
+
- lib/server/config.ru
|
146
|
+
- lib/server/server_app.rb
|
147
|
+
- lib/utils.rb
|
148
|
+
- lib/version_file.rb
|
149
|
+
homepage: https://github.com/kayak/carthage_remote_cache
|
150
|
+
licenses:
|
151
|
+
- Apache-2.0
|
152
|
+
metadata: {}
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
requirements: []
|
168
|
+
rubyforge_project:
|
169
|
+
rubygems_version: 2.5.2
|
170
|
+
signing_key:
|
171
|
+
specification_version: 4
|
172
|
+
summary: Centralized cache to serve carthage frameworks. Useful for distributed CI
|
173
|
+
setup with several build machines.
|
174
|
+
test_files: []
|