carthage_cache 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14c557ec9aff88645661930d8726c26353cf9eb1
4
- data.tar.gz: d4f6a67baf8b14d2e20ba7cfeca16fbf413dc22d
3
+ metadata.gz: fdeb2c1edb2a91fad5618b77bdce1b3a9bc47805
4
+ data.tar.gz: 268f0b7787a0483b3560750d343d588885a37b50
5
5
  SHA512:
6
- metadata.gz: f8cb4a55c9a8887c655e1103a51ee3ec6db841137aab8ba97327608e9b286dafe71b4186bececa928f0a22658c298bb69c632ca0e6313bc1a64521d27f6cb390
7
- data.tar.gz: aa0922188cc9ec64a75194f6b7ea7fa9152d3ff947099f32d497be7f4eface163481b39c91f3b18072e968d7b36ae552c29283b3039cc0e7bfdf6e18c2267508
6
+ metadata.gz: bef1b5390c853648e71cdbffcf06dc94830be0ee5bd45460fab484616cf323cc53355e4cf9327b636a19952ac2ad67a11f50032418ef985c34a2c371aece40ce
7
+ data.tar.gz: 6cdfcc331e81e216964c4660ec1bdde7325880e3678c91ea13b4bb383b76289418e1f3eb644838841fdec3567676e69c2a631e619f7e77fef8a4d0fe114c191c
@@ -1 +1 @@
1
- 2.2.2
1
+ 2.3.1
@@ -3,7 +3,7 @@ os:
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.2.2
6
+ - 2.3.1
7
7
  # OS X 10.9.5-10.10.0 (2.0.0-p481)
8
8
  - system
9
9
  # OS X 10.9.3-10.9.4
data/README.md CHANGED
@@ -14,6 +14,8 @@ When you add slow building environments like Travis CI to the mix, a project boo
14
14
  CarthageCache generates a hash key based on the content of your `Cartfile.resolved` and the current
15
15
  installed version of Swift. Then it checks if there is a cache archive (a zip file of your `Carthage/Build` directory) associated to that hash. If there is one it will download it and install it in your project avoiding the need to run `carthage bootstrap`.
16
16
 
17
+ **Do you want to improve carthage_cache?** [Check all the issues tagged with `help-wanted`!](https://github.com/guidomb/carthage_cache/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). I'll be more than happy to review your pull request.
18
+
17
19
  ## Installation
18
20
 
19
21
  Add this line to your application's Gemfile:
@@ -7,24 +7,22 @@ module CarthageCache
7
7
  attr_reader :terminal
8
8
  attr_reader :build_directory
9
9
  attr_reader :required_frameworks
10
+ attr_reader :command_executor
10
11
 
11
- def initialize(terminal, build_directory, required_frameworks)
12
+ def initialize(terminal, build_directory, required_frameworks, command_executor = ShellCommandExecutor.new)
12
13
  @terminal = terminal
13
14
  @build_directory = build_directory
14
15
  @required_frameworks = Set.new(required_frameworks)
16
+ @command_executor = command_executor
15
17
  end
16
18
 
17
19
  def delete_unused_frameworks(white_list = {})
18
20
  terminal.vputs "Deleting unused frameworks from '#{build_directory}' ..."
19
21
  list_built_frameworks.each do |framework_path|
20
22
  if delete_framework?(framework_path, white_list)
21
- terminal.vputs "Deleting '#{framework_path}' because is not longer needed."
22
- FileUtils.rm_r(framework_path)
23
+ delete_framework_files(framework_path)
23
24
  end
24
25
  end
25
-
26
- symbol_table_files.each { |x| FileUtils.rm_r(x) }
27
- dsym_files.each { |x| FileUtils.rm_r(x) }
28
26
  end
29
27
 
30
28
  private
@@ -42,16 +40,33 @@ module CarthageCache
42
40
  Dir[File.join(build_directory, "/**/*.framework")]
43
41
  end
44
42
 
45
- def symbol_table_files
46
- Dir[File.join(build_directory, "/**/*.bcsymbolmap")]
43
+ def framework_name(framework_path)
44
+ Pathname.new(framework_path).basename(".framework").to_s
45
+ end
46
+
47
+ def delete_framework_files(framework_path)
48
+ framework_dsym_path = "#{framework_path}.dSYM"
49
+ terminal.vputs "Deleting #{framework_name(framework_path)} files because they are no longer needed ..."
50
+ terminal.vputs "Deleting '#{framework_dsym_path}' ..."
51
+ FileUtils.rm_r(framework_dsym_path)
52
+ terminal.vputs "Deleting '#{framework_path}' ..."
53
+ FileUtils.rm_r(framework_path)
54
+ symbol_map_files(framework_dsym_path).each do |symbol_table_file|
55
+ terminal.vputs "Deleting '#{symbol_table_file}' ..."
56
+ FileUtils.rm(symbol_table_file)
57
+ end
58
+ terminal.vputs ""
47
59
  end
48
60
 
49
- def dsym_files
50
- Dir[File.join(build_directory, "/**/*.dSYM")]
61
+ def symbol_map_files(framework_dsym_path)
62
+ uuid_dwarfdump(framework_dsym_path)
63
+ .split("\n")
64
+ .map { |line| line.match(/UUID: (.*) \(/)[1] }
65
+ .map { |uuid| File.expand_path(File.join(framework_dsym_path, "../#{uuid}.bcsymbolmap")) }
51
66
  end
52
67
 
53
- def framework_name(framework_path)
54
- Pathname.new(framework_path).basename(".framework").to_s
68
+ def uuid_dwarfdump(framework_dsym_path)
69
+ command_executor.execute("/usr/bin/xcrun dwarfdump --uuid #{framework_dsym_path}")
55
70
  end
56
71
 
57
72
  end
@@ -1,3 +1,3 @@
1
1
  module CarthageCache
2
- VERSION = "0.8.0"
2
+ VERSION = "0.8.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carthage_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guido Marucci Blas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-04 00:00:00.000000000 Z
11
+ date: 2017-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  version: '0'
186
186
  requirements: []
187
187
  rubyforge_project:
188
- rubygems_version: 2.4.5
188
+ rubygems_version: 2.5.1
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: A tool that allows to cache Carthage/Build folder in Amazon S3.