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 +4 -4
- data/Gemfile.lock +2 -0
- data/README.md +7 -1
- data/assets/output.png +0 -0
- data/bin/xcclean +8 -1
- data/lib/xcode_trash_remover.rb +2 -0
- data/lib/xcode_trash_remover/core.rb +39 -33
- data/lib/xcode_trash_remover/int_pretty_size.rb +8 -0
- data/lib/xcode_trash_remover/size_helper.rb +0 -3
- data/lib/xcode_trash_remover/version.rb +1 -1
- data/lib/xcode_trash_remover/xcode_dir.rb +27 -0
- data/xcode_trash_remover.gemspec +1 -0
- metadata +19 -3
- data/lib/xcode_trash_remover/core_simulator.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3c72775a83912269e2693ae6e92bdc9f3348b25
|
4
|
+
data.tar.gz: 45f7699e65f58b13ae9c5b707a503144b519de50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af045fa7f8fd3c588093194512ff2a7c8be199b347987a9b2828830a3c2f69b667103a8af8a76914cabda9822489ae7d5dbd7f4fa088dc68d1f35578c2c100ef
|
7
|
+
data.tar.gz: b8870396bbebe5e4e28b79d79ad07685d18c37b8d189f23647285fc353cf433c2d4ec62bcc86af846c28ca9aae5fd41e35ee23a692662d95fbb657b9cb7c2851
|
data/Gemfile.lock
CHANGED
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
|
-
|
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
|
-
|
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
|
data/lib/xcode_trash_remover.rb
CHANGED
@@ -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
|
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
|
-
|
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
|
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
|
-
|
29
|
-
|
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
|
-
|
55
|
-
trash_size(dir)
|
55
|
+
trash_size(XcodeDir.derived_data)
|
56
56
|
end
|
57
57
|
|
58
58
|
def archives_size
|
59
|
-
|
60
|
-
trash_size(dir)
|
59
|
+
trash_size(XcodeDir.archives)
|
61
60
|
end
|
62
61
|
|
63
62
|
def playground_devices_size
|
64
|
-
|
65
|
-
trash_size(dir)
|
63
|
+
trash_size(XcodeDir.playground_devices)
|
66
64
|
end
|
67
65
|
|
68
66
|
def core_simulator_size
|
69
|
-
|
70
|
-
|
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,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
|
data/xcode_trash_remover.gemspec
CHANGED
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.
|
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:
|
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/
|
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
|