carthage_remote_cache 0.0.2 → 0.0.3
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 +2 -2
- data/README.md +131 -24
- data/bin/carthagerc +5 -5
- data/carthage_remote_cache.gemspec +1 -1
- data/com.kayak.carthagerc.server.plist +20 -0
- data/lib/carthage_archive.rb +5 -5
- data/lib/carthage_dependency.rb +1 -1
- data/lib/commands/download_command.rb +2 -2
- data/lib/commands/init_command.rb +1 -1
- data/lib/configuration.rb +7 -6
- data/lib/constants.rb +1 -1
- data/lib/errors.rb +5 -2
- data/lib/server/server_app.rb +0 -13
- data/lib/utils.rb +3 -3
- data/lib/version_file.rb +2 -2
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99a24b3d5f791bcaeb20e54585407e069cef1315
|
4
|
+
data.tar.gz: f2142c1579c0be86a434b7145d6d0598724bb29d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 959084abe1f980e686068760c818f4b138e03075cc88667fc47ea875dab38ab7eb21c5e5a94bb775654e2558a2aa98ed07126e89c4cbadfbb02b456d604494fb
|
7
|
+
data.tar.gz: 4469e11a247c273fc956ed1afac2d6f76a3404d6ee7a24ab387c9d2a1c0145868255b5af2c68f9417b0b1f1c222e5ebe27bfe65704133f118bd2cc48d0561052
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
carthage_remote_cache (0.0.
|
4
|
+
carthage_remote_cache (0.0.3)
|
5
5
|
concurrent-ruby (~> 1.0.5)
|
6
6
|
rack (~> 2.0.4)
|
7
7
|
rest-client (~> 2.0.2)
|
@@ -47,7 +47,7 @@ GEM
|
|
47
47
|
tilt (2.0.8)
|
48
48
|
unf (0.1.4)
|
49
49
|
unf_ext
|
50
|
-
unf_ext (0.0.7.
|
50
|
+
unf_ext (0.0.7.5)
|
51
51
|
|
52
52
|
PLATFORMS
|
53
53
|
ruby
|
data/README.md
CHANGED
@@ -1,13 +1,105 @@
|
|
1
1
|
# CarthageRemoteCache
|
2
2
|
|
3
|
+
Centralized cache to serve Carthage frameworks. Useful for distributed CI setup with several build machines. It's aware of your `xcodebuild` and `swift` versions and builds on top of Carthage's `.xyz.version` file mechanism.
|
4
|
+
|
3
5
|
## Installation
|
4
6
|
|
5
7
|
The gem is published at [rubygems.org](https://rubygems.org/gems/carthage_remote_cache), installation is as easy as:
|
6
8
|
|
7
9
|
$ gem install carthage_remote_cache
|
8
10
|
|
11
|
+
## Quickstart
|
12
|
+
|
13
|
+
1. Run `carthagerc server` to start the cache on a remote server
|
14
|
+
2. `cd` to your project's root folder
|
15
|
+
3. Run `carthagerc init` to create `Cartrcfile` and point the server property to your running server URL
|
16
|
+
4. Assuming your `Carthage` directory is already built, run `carthagerc upload` to populate remote cache
|
17
|
+
5. Push your `Cartrcfile` and from a different machine run `cartrcfile download` to fetch frameworks into `Carthage/Build/` folder
|
18
|
+
6. Build your app without having to wait for `carthage bootstrap`
|
19
|
+
|
9
20
|
## Usage
|
10
21
|
|
22
|
+
### Init
|
23
|
+
|
24
|
+
Before running any other commands, it's required to initialize `carthagerc` in your project directory by running:
|
25
|
+
|
26
|
+
$ carthagerc init
|
27
|
+
|
28
|
+
Which produces a `Cartrcfile`. Configuration is done via plain `ruby` code, so it is as simple as:
|
29
|
+
|
30
|
+
Configuration.setup do |c|
|
31
|
+
c.server = "http://localhost:9292/"
|
32
|
+
end
|
33
|
+
|
34
|
+
`Cartrcfile` is supposed to be version controlled (e.g. included in git repository), so that it lives along your code and all consumers of the repository have access to same configuration.
|
35
|
+
|
36
|
+
### Upload Workflow
|
37
|
+
|
38
|
+
Make sure that all your framework binaries have been built with `carthage`, otherwise there is nothing to upload.
|
39
|
+
|
40
|
+
$ carthage bootstrap
|
41
|
+
|
42
|
+
Start the upload with:
|
43
|
+
|
44
|
+
$ carthagerc upload
|
45
|
+
|
46
|
+
After couple of seconds you should be able to see confirmation in terminal:
|
47
|
+
|
48
|
+
Uploaded 53 archives, skipped 0.
|
49
|
+
|
50
|
+
#### Overwriting Existing Cache
|
51
|
+
|
52
|
+
Attempting to run `carthagerc upload` again will not upload any framework binaries, since all of them are already present on the cache server:
|
53
|
+
|
54
|
+
Uploaded 53 archives, skipped 53.
|
55
|
+
|
56
|
+
If your cache happen to be tainted by invalid framework binaries, you can overwrite existing cache with
|
57
|
+
|
58
|
+
$ carthagerc upload --force
|
59
|
+
|
60
|
+
#### Upgrading Xcode or Swift
|
61
|
+
|
62
|
+
It is recommended to always perform the upload workflow after upgrading Xcode and Swift versions since `carthagerc` cached frameworks are not only bound to framework versions, but also to your build environment.
|
63
|
+
|
64
|
+
### Download Workflow
|
65
|
+
|
66
|
+
Once cache server has been populated with framework binaries, it's time to fetch frameworks from a different machine. Make sure to pull in `Cartrcfile` from respository before executing:
|
67
|
+
|
68
|
+
$ carthagerc download
|
69
|
+
|
70
|
+
You should expect to see following output on a machine with empty `Carthage` folder:
|
71
|
+
|
72
|
+
Downloaded and extracted 53 archives, skipped 0 archives.
|
73
|
+
|
74
|
+
Your project should be ready for building.
|
75
|
+
|
76
|
+
#### Overwriting Local Carthage Folder
|
77
|
+
|
78
|
+
In case you happen to change a file in `Carthage/Build` by accident, it's possible to force download all frameworks again with:
|
79
|
+
|
80
|
+
$ carthagerc download --force
|
81
|
+
|
82
|
+
|
83
|
+
### Config
|
84
|
+
|
85
|
+
To get a quick overview on Xcode / Swift / Framework versions, execute
|
86
|
+
|
87
|
+
$ carthagerc config
|
88
|
+
|
89
|
+
Which will print similar information:
|
90
|
+
|
91
|
+
Xcodebuild: 9C40b
|
92
|
+
---
|
93
|
+
Swift: 4.0.3
|
94
|
+
---
|
95
|
+
Server: http://localhost:9292/
|
96
|
+
---
|
97
|
+
Cartfile.resolved:
|
98
|
+
github "kayak/attributions" "0.3"
|
99
|
+
---
|
100
|
+
Local Build Frameworks:
|
101
|
+
Attributions 0.3 [:iOS]
|
102
|
+
|
11
103
|
### Cache Server
|
12
104
|
|
13
105
|
Start the server with
|
@@ -16,6 +108,8 @@ Start the server with
|
|
16
108
|
|
17
109
|
and browse to [localhost:9292](http://localhost:9292/) where you should be able to see the default _Welcome_ message.
|
18
110
|
|
111
|
+
Framework binaries will be stored in `~/.carthagerc_server` folder.
|
112
|
+
|
19
113
|
Server is bound to port 9292 by default. If you need to use different port, specify the port number via `-pPORT` or `--port=PORT` command line arguments, e.g.:
|
20
114
|
|
21
115
|
$ carthage server -p9000
|
@@ -23,28 +117,49 @@ Server is bound to port 9292 by default. If you need to use different port, spec
|
|
23
117
|
|
24
118
|
Don't forget to change port number in your version controlled `Cartrcfile`.
|
25
119
|
|
26
|
-
|
120
|
+
#### Launch Agent
|
27
121
|
|
28
|
-
|
122
|
+
You can also run the cache server as a launch agent. Copy the template [com.kayak.carthagerc.server.plist](https://github.com/kayak/carthage_remote_cache/blob/master/com.kayak.carthagerc.server.plist) file to `~/Library/LaunchAgents`, change log
|
123
|
+
paths to include your username and run:
|
29
124
|
|
30
|
-
$ carthagerc
|
125
|
+
$ launchctl load -w ~/Library/LaunchAgents/com.kayak.carthagerc.server.plist
|
31
126
|
|
32
|
-
|
127
|
+
If you want to stop the agent, run:
|
33
128
|
|
34
|
-
|
35
|
-
c.server = "http://localhost:9292/"
|
36
|
-
end
|
129
|
+
$ launchctl unload ~/Library/LaunchAgents/com.kayak.carthagerc.server.plist
|
37
130
|
|
38
|
-
|
39
|
-
$ carthagerc upload
|
40
|
-
|
41
|
-
### Artifact Download
|
42
|
-
$ carthagerc download
|
131
|
+
Check out official documentation on [Launch Agents](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html) for more info.
|
43
132
|
|
44
133
|
### Help
|
45
134
|
|
46
135
|
Documentation is also available when running `carthagerc` or `carthagerc --help`. Both commands print list of available commands with brief description.
|
47
136
|
|
137
|
+
carthagerc COMMAND [OPTIONS]
|
138
|
+
|
139
|
+
...
|
140
|
+
|
141
|
+
COMMANDS
|
142
|
+
config
|
143
|
+
prints environment information and Cartrcfile configuration
|
144
|
+
|
145
|
+
download [-f|--force] [-v|--verbose]
|
146
|
+
fetch missing frameworks into Carthage/Build
|
147
|
+
|
148
|
+
init
|
149
|
+
create initial Cartrcfile in current directory
|
150
|
+
|
151
|
+
upload [-f|--force] [-v|--verbose]
|
152
|
+
archive frameworks in Carthage/Build and upload them to the server
|
153
|
+
|
154
|
+
server [-pPORT|--port=PORT]
|
155
|
+
start cache server
|
156
|
+
|
157
|
+
OPTIONS
|
158
|
+
-f, --force Force upload/download of framework archives even if local and server .version files match
|
159
|
+
-h, --help Show help
|
160
|
+
-p, --port=PORT Server application port used when starting server, default port is 9292
|
161
|
+
-v, --verbose Show extra runtime information
|
162
|
+
|
48
163
|
## Development
|
49
164
|
|
50
165
|
After checking out the repo, run `dev/setup` to install dependencies. You can also run `dev/console` for an interactive prompt that will allow you to experiment.
|
@@ -57,25 +172,17 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
57
172
|
|
58
173
|
### Example Folder
|
59
174
|
|
60
|
-
Repository is bundled with an example Carthage setup
|
175
|
+
Repository is bundled with an example Carthage setup for your experiments. Open the [example](https://github.com/kayak/carthage_remote_cache/blob/master/example) folder, where you should be able to see following files, which are preconfigured to bring in a couple of frameworks:
|
61
176
|
- Cartfile
|
62
177
|
- Cartfile.resolved
|
63
178
|
- Cartrcfile
|
64
179
|
|
65
|
-
|
66
|
-
|
67
|
-
First of all, build Carthage dependencies:
|
180
|
+
Make sure to build these dependencies with `carthage bootstrap` before attempting to upload them.
|
68
181
|
|
69
|
-
|
70
|
-
|
71
|
-
After the `Carthage/Build` folder gets populated, execute:
|
182
|
+
Try out a few commands:
|
72
183
|
|
184
|
+
$ carthagerc config
|
73
185
|
$ carthagerc upload
|
74
|
-
|
75
|
-
You should be able to observe the `~/.carthage_remote_cache` folder filling.
|
76
|
-
|
77
|
-
#### Download
|
78
|
-
|
79
186
|
$ carthagerc download
|
80
187
|
|
81
188
|
## License
|
data/bin/carthagerc
CHANGED
@@ -21,10 +21,10 @@ opt_parser = OptionParser.new do |opt|
|
|
21
21
|
opt.separator "QUICKSTART"
|
22
22
|
opt.separator " 1. Run `carthagerc server` to start the cache on a remote server"
|
23
23
|
opt.separator " 2. `cd` to your project's root folder"
|
24
|
-
opt.separator " 3. Run `carthagerc init` to create
|
25
|
-
opt.separator " 4. Assuming your
|
26
|
-
opt.separator " 5. Push your `
|
27
|
-
opt.separator " 6.
|
24
|
+
opt.separator " 3. Run `carthagerc init` to create `Cartrcfile` and point the server property to your running server URL"
|
25
|
+
opt.separator " 4. Assuming your `Carthage` directory is already built, run `carthagerc upload` to populate remote cache"
|
26
|
+
opt.separator " 5. Push your `Cartrcfile` and from a different machine run `cartrcfile download` to fetch frameworks into `Carthage/Build/` folder"
|
27
|
+
opt.separator " 6. Build your app without having to wait for `carthage bootstrap`"
|
28
28
|
opt.separator ""
|
29
29
|
opt.separator "COMMANDS"
|
30
30
|
opt.separator " config"
|
@@ -80,6 +80,6 @@ begin
|
|
80
80
|
else
|
81
81
|
bail("Unsupported command #{command}, run with --help to show available commands")
|
82
82
|
end
|
83
|
-
rescue => e
|
83
|
+
rescue AppError => e
|
84
84
|
bail(e.message)
|
85
85
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "carthage_remote_cache"
|
3
|
-
spec.version = "0.0.
|
3
|
+
spec.version = "0.0.3"
|
4
4
|
|
5
5
|
spec.summary = %q{Centralized cache to serve carthage frameworks. Useful for distributed CI setup with several build machines.}
|
6
6
|
spec.description = spec.summary
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>Label</key>
|
6
|
+
<string>com.kayak.carthagerc.server</string>
|
7
|
+
<key>ProgramArguments</key>
|
8
|
+
<array>
|
9
|
+
<string>/usr/local/bin/carthagerc</string>
|
10
|
+
<string>server</string>
|
11
|
+
<string>--port=9292</string>
|
12
|
+
</array>
|
13
|
+
<key>KeepAlive</key>
|
14
|
+
<true/>
|
15
|
+
<key>StandardOutPath</key>
|
16
|
+
<string>/Users/MY_USER/Library/Logs/carthagerc.server.stdout.log</string>
|
17
|
+
<key>StandardErrorPath</key>
|
18
|
+
<string>/Users/MY_USER/Library/Logs/carthagerc.server.stderr.log</string>
|
19
|
+
</dict>
|
20
|
+
</plist>
|
data/lib/carthage_archive.rb
CHANGED
@@ -3,7 +3,7 @@ class CarthageArchive
|
|
3
3
|
attr_reader :archive_filename, :archive_path
|
4
4
|
|
5
5
|
def initialize(framework_name, platform)
|
6
|
-
raise "Platform #{platform.inspect} needs to be a symbol" unless platform.kind_of?(Symbol)
|
6
|
+
raise AppError.new, "Platform #{platform.inspect} needs to be a symbol" unless platform.kind_of?(Symbol)
|
7
7
|
|
8
8
|
@framework_name = framework_name
|
9
9
|
@platform = platform
|
@@ -21,13 +21,13 @@ class CarthageArchive
|
|
21
21
|
|
22
22
|
platform_path = File.join(CARTHAGE_BUILD_DIR, platform_to_carthage_dir_string(@platform))
|
23
23
|
framework_path = File.join(platform_path, "#{@framework_name}.framework")
|
24
|
-
raise "Archive can't be created, no framework directory at #{framework_path}" unless Dir.exist?(framework_path)
|
24
|
+
raise AppError.new, "Archive can't be created, no framework directory at #{framework_path}" unless Dir.exist?(framework_path)
|
25
25
|
|
26
26
|
dsym_path = File.join(platform_path, "#{@framework_name}.framework.dSYM")
|
27
|
-
raise "DSYM File #{dsym_path} is missing" unless File.exist?(dsym_path)
|
27
|
+
raise AppError.new, "DSYM File #{dsym_path} is missing" unless File.exist?(dsym_path)
|
28
28
|
|
29
29
|
binary_path = File.join(framework_path, @framework_name)
|
30
|
-
raise "Binary #{binary_path} is missing, failed to read .bcsymbolmap files" unless File.exist?(binary_path)
|
30
|
+
raise AppError.new, "Binary #{binary_path} is missing, failed to read .bcsymbolmap files" unless File.exist?(binary_path)
|
31
31
|
|
32
32
|
bcsymbolmap_paths = find_bcsymbolmap_paths(platform_path, binary_path)
|
33
33
|
|
@@ -41,7 +41,7 @@ class CarthageArchive
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def unpack_archive
|
44
|
-
raise "Archive #{@archive_path} is missing" unless File.exist?(@archive_path)
|
44
|
+
raise AppError.new, "Archive #{@archive_path} is missing" unless File.exist?(@archive_path)
|
45
45
|
$LOG.debug("Unpacking #{@archive_path}, file size: #{formatted_archive_size}")
|
46
46
|
sh("unzip -o #{quote @archive_path}")
|
47
47
|
end
|
data/lib/carthage_dependency.rb
CHANGED
@@ -30,7 +30,7 @@ class CarthageDependency
|
|
30
30
|
when "github"
|
31
31
|
repository.split("/").last
|
32
32
|
else
|
33
|
-
raise "Determining version_filename from #{@type} dependency is not yet supported"
|
33
|
+
raise AppError.new, "Determining version_filename from #{@type} dependency is not yet supported"
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -52,12 +52,12 @@ class DownloadCommand
|
|
52
52
|
end
|
53
53
|
|
54
54
|
version_file = @networking.download_version_file(carthage_dependency)
|
55
|
-
raise "Version file #{carthage_dependency.version_filename} is not present on the server, please run `carthagerc upload` first" if version_file.nil?
|
55
|
+
raise AppError.new, "Version file #{carthage_dependency.version_filename} is not present on the server, please run `carthagerc upload` first" if version_file.nil?
|
56
56
|
|
57
57
|
version_file.frameworks_by_platform.each do |platform, framework_names|
|
58
58
|
for framework_name in framework_names do
|
59
59
|
archive = @api.download_and_unpack_archive(carthage_dependency, framework_name, platform)
|
60
|
-
raise "Failed to download framework #{carthage_dependency} – #{framework_name} (#{platform}). Please `upload` the framework first." if archive.nil?
|
60
|
+
raise AppError.new, "Failed to download framework #{carthage_dependency} – #{framework_name} (#{platform}). Please `upload` the framework first." if archive.nil?
|
61
61
|
@number_of_downloaded_archives += 1
|
62
62
|
end
|
63
63
|
end
|
data/lib/configuration.rb
CHANGED
@@ -44,34 +44,35 @@ class Configuration
|
|
44
44
|
def initialize_env
|
45
45
|
xcodebuild_raw_version = sh("xcodebuild -version")
|
46
46
|
@xcodebuild_version = xcodebuild_raw_version[/Build version (.*)$/, 1]
|
47
|
-
raise "Could not parse build version from '#{xcodebuild_raw_version}'" if @xcodebuild_version.nil?
|
47
|
+
raise AppError.new, "Could not parse build version from '#{xcodebuild_raw_version}'" if @xcodebuild_version.nil?
|
48
48
|
|
49
49
|
swift_raw_version = sh("swift -version")
|
50
50
|
@swift_version = swift_raw_version[/Apple Swift version (.*) \(/, 1]
|
51
|
-
raise "Could not parse swift version from '#{raw_swift_version}'" if @swift_version.nil?
|
51
|
+
raise AppError.new, "Could not parse swift version from '#{raw_swift_version}'" if @swift_version.nil?
|
52
52
|
|
53
|
-
raise "Misssing #{CARTFILE_RESOLVED}" unless File.exist?(CARTFILE_RESOLVED)
|
53
|
+
raise AppError.new, "Misssing #{CARTFILE_RESOLVED}" unless File.exist?(CARTFILE_RESOLVED)
|
54
54
|
@carthage_dependencies = File.readlines(CARTFILE_RESOLVED)
|
55
55
|
.map { |line| CarthageDependency.parse_cartfile_resolved_line(line) }
|
56
56
|
.compact
|
57
57
|
end
|
58
58
|
|
59
59
|
def initialize_cartrcfile
|
60
|
-
raise "Configuration file #{CARTRCFILE} was not found, consider creating one by running `carthagerc init`" unless File.exist?(CARTRCFILE)
|
60
|
+
raise AppError.new, "Configuration file #{CARTRCFILE} was not found, consider creating one by running `carthagerc init`" unless File.exist?(CARTRCFILE)
|
61
61
|
|
62
62
|
# Populate class variable @@user_config.
|
63
63
|
load File.join(Dir.pwd, CARTRCFILE)
|
64
64
|
|
65
|
-
raise "Missing 'server' configuration in #{CARTRCFILE}" if @@user_config.server.nil? || @@user_config.server.empty?
|
65
|
+
raise AppError.new, "Missing 'server' configuration in #{CARTRCFILE}" if @@user_config.server.nil? || @@user_config.server.empty?
|
66
66
|
@server_uri = URI.parse(@@user_config.server)
|
67
67
|
end
|
68
68
|
|
69
69
|
def framework_names_with_platforms
|
70
|
-
version_files.flat_map do |vf|
|
70
|
+
lines = version_files.flat_map do |vf|
|
71
71
|
vf.platforms_by_framework.flat_map do |framework_name, platforms|
|
72
72
|
"#{framework_name} #{vf.version} #{platforms}"
|
73
73
|
end
|
74
74
|
end
|
75
|
+
lines.sort
|
75
76
|
end
|
76
77
|
|
77
78
|
def version_files
|
data/lib/constants.rb
CHANGED
data/lib/errors.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
# Common type for all carthage_remote_cache Errors.
|
2
|
+
class AppError < StandardError; end
|
3
|
+
|
4
|
+
class MultipleErrorsError < AppError
|
2
5
|
|
3
6
|
def initialize(errors)
|
4
7
|
@errors = errors
|
@@ -10,4 +13,4 @@ class MultipleErrorsError < StandardError
|
|
10
13
|
|
11
14
|
end
|
12
15
|
|
13
|
-
class OutdatedFrameworkBuildError <
|
16
|
+
class OutdatedFrameworkBuildError < AppError; end
|
data/lib/server/server_app.rb
CHANGED
@@ -40,19 +40,6 @@ post versions_path do
|
|
40
40
|
status(200)
|
41
41
|
end
|
42
42
|
|
43
|
-
# Check whether framework archive is already cached.
|
44
|
-
head frameworks_path do
|
45
|
-
dirname = params_to_framework_dir(params)
|
46
|
-
archive = CarthageArchive.new(params[:framework_name], params[:platform].to_sym)
|
47
|
-
filename = File.join(dirname, archive.archive_filename)
|
48
|
-
|
49
|
-
if File.exist?(filename)
|
50
|
-
status(200)
|
51
|
-
else
|
52
|
-
status(404)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
43
|
# Retrieve .zip framework archive.
|
57
44
|
get frameworks_path do
|
58
45
|
dirname = params_to_framework_dir(params)
|
data/lib/utils.rb
CHANGED
@@ -27,7 +27,7 @@ def quote(input)
|
|
27
27
|
.select { |e| !e.empty? }
|
28
28
|
.join(' ')
|
29
29
|
else
|
30
|
-
raise "Unsupported type #{input}"
|
30
|
+
raise AppError.new, "Unsupported type #{input}"
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -42,7 +42,7 @@ def platform_to_api_string(platform)
|
|
42
42
|
when :watchOS
|
43
43
|
'watchOS'
|
44
44
|
else
|
45
|
-
raise "Unrecognized platform #{platform.inspect}"
|
45
|
+
raise AppError.new, "Unrecognized platform #{platform.inspect}"
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -57,6 +57,6 @@ def platform_to_carthage_dir_string(platform)
|
|
57
57
|
when :watchOS
|
58
58
|
'watchOS'
|
59
59
|
else
|
60
|
-
raise "Unrecognized platform #{platform.inspect}"
|
60
|
+
raise AppError.new, "Unrecognized platform #{platform.inspect}"
|
61
61
|
end
|
62
62
|
end
|
data/lib/version_file.rb
CHANGED
@@ -63,13 +63,13 @@ class VersionFile
|
|
63
63
|
private
|
64
64
|
|
65
65
|
def parse
|
66
|
-
raise "File #{path} doesn't exist, has carthage been bootstrapped?" unless File.exist?(@path)
|
66
|
+
raise AppError.new, "File #{path} doesn't exist, has carthage been bootstrapped?" unless File.exist?(@path)
|
67
67
|
|
68
68
|
file = File.read(@path)
|
69
69
|
json = JSON.parse(file)
|
70
70
|
|
71
71
|
@version = json['commitish']
|
72
|
-
raise "Version is missing in #{@path}" if @version.nil? || @version.empty?
|
72
|
+
raise AppError.new, "Version is missing in #{@path}" if @version.nil? || @version.empty?
|
73
73
|
|
74
74
|
@frameworks_by_platform = {
|
75
75
|
:iOS => parse_platform_array(json['iOS']),
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carthage_remote_cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juraj Blahunka
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- Rakefile
|
126
126
|
- bin/carthagerc
|
127
127
|
- carthage_remote_cache.gemspec
|
128
|
+
- com.kayak.carthagerc.server.plist
|
128
129
|
- dev/console
|
129
130
|
- dev/setup
|
130
131
|
- dev/start_server
|