xcode_trash_remover 2.0.0 → 2.0.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: 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