xcode_trash_remover 2.0.0 → 2.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8957b6d71bcb59728b829fa9efccdd5c2d3b52c5
4
- data.tar.gz: 10524f0399e4b2917653030bb0661e4c7197c7f1
3
+ metadata.gz: d3c72775a83912269e2693ae6e92bdc9f3348b25
4
+ data.tar.gz: 45f7699e65f58b13ae9c5b707a503144b519de50
5
5
  SHA512:
6
- metadata.gz: 2797adc81d580c7a3e151ebe1ed39f05e809840d61ee28a3e4f8ae260be98b7c9cb6ffbfe53caeb0f765cb8bd35118e4c8d42588c780116ece8098727f37b692
7
- data.tar.gz: f8aef68032dba7e4b150c56458530d2053f42f0dd03198db085e484dc20788e565ef9beaf4ea752e2103f9eecefeb4fa4854d66136048a6d7065af1d0013e668
6
+ metadata.gz: af045fa7f8fd3c588093194512ff2a7c8be199b347987a9b2828830a3c2f69b667103a8af8a76914cabda9822489ae7d5dbd7f4fa088dc68d1f35578c2c100ef
7
+ data.tar.gz: b8870396bbebe5e4e28b79d79ad07685d18c37b8d189f23647285fc353cf433c2d4ec62bcc86af846c28ca9aae5fd41e35ee23a692662d95fbb657b9cb7c2851
data/Gemfile.lock CHANGED
@@ -2,10 +2,12 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  xcode_trash_remover (2.0.0)
5
+ filesize (~> 0.1.1)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
10
+ filesize (0.1.1)
9
11
  rake (10.4.2)
10
12
 
11
13
  PLATFORMS
data/README.md CHANGED
@@ -8,4 +8,10 @@ This is a simple script to remove Xcode's trash files that are generated under d
8
8
 
9
9
  ## Usage
10
10
 
11
- $ xcodert
11
+ Simply run `$ xcclean` to check your directories. And run:
12
+
13
+ $ xcclean -rm
14
+
15
+ To remove the files. You'll see something like the following:
16
+
17
+ <img src = https://raw.githubusercontent.com/FrankKair/xcode-trash-remover/master/assets/output.png width="30%" height="30%"/>
data/assets/output.png ADDED
Binary file
data/bin/xcclean CHANGED
@@ -3,4 +3,11 @@ require 'xcode_trash_remover'
3
3
 
4
4
  puts '== Xcode Trash Remover =='
5
5
  XcodeTrashRemover::Core.check_volumes
6
- XcodeTrashRemover::Core.remove_trash
6
+
7
+ input = ARGV[0]
8
+ case input
9
+ when '-rm'
10
+ XcodeTrashRemover::Core.remove_trash
11
+ else
12
+ XcodeTrashRemover::Core.show_options
13
+ end
@@ -1,3 +1,5 @@
1
1
  require 'xcode_trash_remover/version'
2
2
  require 'xcode_trash_remover/core'
3
+ require 'xcode_trash_remover/int_pretty_size'
3
4
  require 'xcode_trash_remover/size_helper'
5
+ require 'xcode_trash_remover/xcode_dir'
@@ -1,34 +1,47 @@
1
1
  require 'fileutils'
2
- require 'find'
3
2
 
4
3
  module XcodeTrashRemover
5
4
  module Core
6
5
  extend self
7
6
 
8
7
  def check_volumes
9
- puts 'Dir bytes'
8
+ puts 'Dir size'
10
9
  puts
11
- puts "DerivedData #{derived_data_size}"
12
- puts "Archives #{archives_size}"
13
- puts "XCPGDevices #{playground_devices_size}"
14
- puts "CoreSimulator #{core_simulator_size}"
10
+ puts "DerivedData #{derived_data_size.pretty}"
11
+ puts "Archives #{archives_size.pretty}"
12
+ puts "XCPGDevices #{playground_devices_size.pretty}"
13
+ puts "CoreSimulator #{core_simulator_size.pretty}"
15
14
  puts
16
15
  end
17
16
 
18
17
  def remove_trash
19
18
  total = total_size
20
- puts "Total #{total}"
19
+ print_total_size(total)
20
+ remove_dirs
21
+ puts "#{total.pretty} removed!"
22
+ end
23
+
24
+ def show_options
25
+ puts 'Run:'
26
+ puts '$ xcclean -rm'
27
+ puts 'To remove the files from your system.'
28
+ end
29
+
30
+ private
31
+
32
+ def print_total_size(size)
33
+ puts "Total #{size.pretty}"
21
34
  puts '-'
22
- if total.zero?
35
+ if size.zero?
23
36
  puts 'The directories are empty. No trash files.'
24
37
  exit(0)
25
38
  end
39
+ end
26
40
 
41
+ def remove_dirs
27
42
  dirs = [
28
- Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/DerivedData/*"),
29
- Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/Archives/*"),
30
- Dir.glob("#{File.expand_path('~')}/Library/Developer/XCPGDevices/*"),
31
- Dir.glob("#{File.expand_path('~')}/Library/Developer/CoreSimulator/Devices/*")
43
+ XcodeDir.derived_data, XcodeDir.archives,
44
+ XcodeDir.playground_devices, XcodeDir.core_simulator
32
45
  ]
33
46
 
34
47
  dirs.each do |dir|
@@ -36,43 +49,36 @@ module XcodeTrashRemover
36
49
  remove_dir(subdir)
37
50
  end
38
51
  end
39
- puts "#{total} bytes removed!"
40
- end
41
-
42
- private
43
-
44
- def total_size
45
- total = 0
46
- total += derived_data_size
47
- total += archives_size
48
- total += playground_devices_size
49
- total += core_simulator_size
50
- total
51
52
  end
52
53
 
53
54
  def derived_data_size
54
- dir = Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/DerivedData/*")
55
- trash_size(dir)
55
+ trash_size(XcodeDir.derived_data)
56
56
  end
57
57
 
58
58
  def archives_size
59
- dir = Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/Archives/*")
60
- trash_size(dir)
59
+ trash_size(XcodeDir.archives)
61
60
  end
62
61
 
63
62
  def playground_devices_size
64
- dir = Dir.glob("#{File.expand_path('~')}/Library/Developer/XCPGDevices/*")
65
- trash_size(dir)
63
+ trash_size(XcodeDir.playground_devices)
66
64
  end
67
65
 
68
66
  def core_simulator_size
69
- dir = Dir.glob("#{File.expand_path('~')}/Library/Developer/CoreSimulator/Devices/*")
70
- trash_size(dir)
67
+ trash_size(XcodeDir.core_simulator)
68
+ end
69
+
70
+ def total_size
71
+ total = 0
72
+ total += derived_data_size
73
+ total += archives_size
74
+ total += playground_devices_size
75
+ total += core_simulator_size
76
+ total
71
77
  end
72
78
 
73
79
  def trash_size(dir)
80
+ return 0 if dir.empty?
74
81
  size = 0
75
- return size if dir.empty?
76
82
  dir.each do |subdir|
77
83
  size += SizeHelper.dir_size(subdir)
78
84
  end
@@ -0,0 +1,8 @@
1
+ require 'filesize'
2
+
3
+ class Integer
4
+ def pretty
5
+ s = to_s + ' B'
6
+ Filesize.from(s).pretty
7
+ end
8
+ end
@@ -1,12 +1,9 @@
1
1
  require 'fileutils'
2
- require 'find'
3
2
 
4
3
  module XcodeTrashRemover
5
4
  module SizeHelper
6
5
  extend self
7
6
 
8
- # TODO: function to return best size (MB or GB).
9
-
10
7
  def dir_size(dir_path)
11
8
  dir_path << '/' unless dir_path.end_with?('/')
12
9
  total_size = 0
@@ -1,3 +1,3 @@
1
1
  module XcodeTrashRemover
2
- VERSION = '2.0.0'.freeze
2
+ VERSION = '2.0.1'.freeze
3
3
  end
@@ -0,0 +1,27 @@
1
+ module XcodeTrashRemover
2
+ module XcodeDir
3
+ extend self
4
+
5
+ def derived_data
6
+ root('Xcode/DerivedData')
7
+ end
8
+
9
+ def archives
10
+ root('Xcode/Archives')
11
+ end
12
+
13
+ def playground_devices
14
+ root('XCPGDevices')
15
+ end
16
+
17
+ def core_simulator
18
+ root('CoreSimulator/Devices')
19
+ end
20
+
21
+ private
22
+
23
+ def root(dir)
24
+ Dir.glob("#{File.expand_path('~')}/Library/Developer/#{dir}/*")
25
+ end
26
+ end
27
+ end
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.14'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_runtime_dependency 'filesize', '~> 0.1.1'
23
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcode_trash_remover
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Kair
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-25 00:00:00.000000000 Z
11
+ date: 2018-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: filesize
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
41
55
  description: Script to remove trash files that Xcode generates
42
56
  email:
43
57
  - frankkair@gmail.com
@@ -52,12 +66,14 @@ files:
52
66
  - LICENSE.txt
53
67
  - README.md
54
68
  - Rakefile
69
+ - assets/output.png
55
70
  - bin/xcclean
56
71
  - lib/xcode_trash_remover.rb
57
72
  - lib/xcode_trash_remover/core.rb
58
- - lib/xcode_trash_remover/core_simulator.rb
73
+ - lib/xcode_trash_remover/int_pretty_size.rb
59
74
  - lib/xcode_trash_remover/size_helper.rb
60
75
  - lib/xcode_trash_remover/version.rb
76
+ - lib/xcode_trash_remover/xcode_dir.rb
61
77
  - xcode_trash_remover.gemspec
62
78
  homepage: https://www.github.com/FrankKair/xcode-trash-remover
63
79
  licenses:
@@ -1,26 +0,0 @@
1
- require 'fileutils'
2
- require 'find'
3
-
4
- module XcodeTrashRemover
5
- module CoreSimulator
6
- extend self
7
- def core_simulator_folders
8
- dirs = []
9
-
10
- # TODO: Select which version to delete (8, 9, Watch, TV...)
11
- os = ['iOS-8', 'iOS-9', 'watchOS', 'tvOS']
12
-
13
- core_simulator_dir = "#{File.expand_path('~')}/Library/Developer/CoreSimulator/Devices/*/*"
14
-
15
- Dir.glob(core_simulator_dir).each do |dir|
16
- next unless dir.include?('plist')
17
- device_plist = "/#{dir}"[1..-1]
18
-
19
- os.each do |os|
20
- dirs.push(File.dirname(dir)) if File.read(device_plist).include?(os)
21
- end
22
- end
23
- dirs
24
- end
25
- end
26
- end