fastlane-plugin-itargetchecker 0.2.0 → 0.3.0
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79be675d00586c3d8251ea14ea36a3c5a34093d5dd4b374ba0c2d295f792b37f
|
4
|
+
data.tar.gz: 63be800d35f1fb08839bc914eb9f871ca396b2cb4ab12b402519a6dd6ef6f2b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8027b28cf4baff207976202c6b407378d2f34134c99a1e7a6dfcd0e78989a3c2004e2b251ce11cbb314173e1364bc060331c901367945dfd168a4a732b7220a
|
7
|
+
data.tar.gz: d09547f2f5b96b7a4de478bf0214874c84d2b147c1b78a1bc2591f0dfe9c4a6041bd2245d367882a3fab97836fb390d6541c4add55cf9c432efcd9c806a0d813
|
data/README.md
CHANGED
@@ -34,10 +34,9 @@ You can now use regex in the ignored files strings passed to the plugin. That ca
|
|
34
34
|
**Quick ussage sample:**
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
itargetchecker(project_path:"../
|
38
|
-
ignore_files:["
|
39
|
-
"
|
40
|
-
ignore_targets:["YourProjTests"])
|
37
|
+
itargetchecker(project_path:"../your_project.xcodeproj",
|
38
|
+
ignore_files:["\w*\.framework\b*", "\w*\.xcconfig\b*", "\w*\.h\b*", "Info.plist"],
|
39
|
+
ignore_targets:["your_projectTests"])
|
41
40
|
```
|
42
41
|
|
43
42
|
## Run tests for this plugin (to be continued..)
|
data/bin/itargetchecker
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fastlane/plugin/itargetchecker/actions/itargetchecker'
|
4
|
+
|
5
|
+
# Requests 3 parameters, 1 xcodeproj file path, 2 ignored files (if more than 1, split by #), 3 ignored targets (if more than 1, split by #)
|
6
|
+
|
7
|
+
ignoreFiles = ""
|
8
|
+
ignoreTargets = ""
|
9
|
+
|
10
|
+
if ARGV[1]
|
11
|
+
ignoreFiles = ARGV[1].split("#")
|
12
|
+
end
|
13
|
+
|
14
|
+
if ARGV[2]
|
15
|
+
ignoreTargets = ARGV[2].split("#")
|
16
|
+
end
|
17
|
+
|
18
|
+
puts ITargetChecker.checkTarget(project_path:ARGV[0],
|
19
|
+
ignore_files:ignoreFiles,
|
20
|
+
ignore_targets:ignoreTargets)
|
21
|
+
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'xcodeproj'
|
2
|
+
|
3
|
+
class ITargetChecker
|
4
|
+
def self.checkTarget(params)
|
5
|
+
|
6
|
+
project = Xcodeproj::Project.open(params[:project_path])
|
7
|
+
|
8
|
+
lostFiles = Array.new
|
9
|
+
ignoredFiles = params[:ignore_files]
|
10
|
+
|
11
|
+
# loop through all the project files
|
12
|
+
project.files.each do |file|
|
13
|
+
|
14
|
+
faultyFile = file.name == nil || file.name == ""
|
15
|
+
if ignoredFiles
|
16
|
+
ignoredFiles.each do |ignoredItem|
|
17
|
+
faultyFile = faultyFile || file.name.match(ignoredItem)
|
18
|
+
if faultyFile
|
19
|
+
next
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if faultyFile
|
25
|
+
next
|
26
|
+
end
|
27
|
+
|
28
|
+
project.targets.each do |target|
|
29
|
+
|
30
|
+
found = false
|
31
|
+
|
32
|
+
if params[:ignore_targets]
|
33
|
+
if (params[:ignore_targets].include? target.name)
|
34
|
+
next
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
target.build_phases.each do |buildPhase|
|
39
|
+
|
40
|
+
correctTypes = buildPhase.isa == "PBXSourcesBuildPhase" || buildPhase.isa == "PBXResourcesBuildPhase"
|
41
|
+
if correctTypes
|
42
|
+
# get all files of a target
|
43
|
+
buildPhase.files.each do |targetFile|
|
44
|
+
if targetFile.display_name == file.name
|
45
|
+
found = true
|
46
|
+
break
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if found == false
|
53
|
+
lostFiles.push("file: #{file.name} target: #{target}")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
lostFiles
|
59
|
+
end
|
60
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'fastlane/action'
|
2
2
|
require 'xcodeproj'
|
3
|
+
require_relative 'itargetchecker'
|
3
4
|
require_relative '../helper/itargetchecker_helper'
|
4
5
|
|
5
6
|
module Fastlane
|
@@ -7,69 +8,15 @@ module Fastlane
|
|
7
8
|
class ItargetcheckerAction < Action
|
8
9
|
def self.run(params)
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
ignoredFiles = params[:ignore_files]
|
14
|
-
|
15
|
-
# loop through all the project files
|
16
|
-
project.files.each do |file|
|
17
|
-
|
18
|
-
faultyFile = file.name == nil || file.name == ""
|
19
|
-
if ignoredFiles
|
20
|
-
ignoredFiles.each do |ignoredItem|
|
21
|
-
faultyFile = faultyFile || file.name.match(ignoredItem)
|
22
|
-
if faultyFile
|
23
|
-
next
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
if faultyFile
|
29
|
-
next
|
30
|
-
end
|
31
|
-
|
32
|
-
project.targets.each do |target|
|
33
|
-
|
34
|
-
found = false
|
35
|
-
|
36
|
-
if params[:ignore_targets]
|
37
|
-
if (params[:ignore_targets].include? target.name)
|
38
|
-
next
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
target.build_phases.each do |buildPhase|
|
43
|
-
|
44
|
-
correctTypes = buildPhase.isa == "PBXSourcesBuildPhase" || buildPhase.isa == "PBXResourcesBuildPhase"
|
45
|
-
if correctTypes
|
46
|
-
# get all files of a target
|
47
|
-
buildPhase.files.each do |targetFile|
|
48
|
-
if targetFile.display_name == file.name
|
49
|
-
found = true
|
50
|
-
break
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
if found == false
|
58
|
-
UI.error "\n Can't find file: #{file.name} in target: #{target}"
|
59
|
-
lostFiles.push("file: #{file.name} target: #{target}")
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
if lostFiles.length > 0
|
11
|
+
output = ITargetChecker.checkTarget(project_path:params[:project_path], ignore_files:params[:ignore_files], ignore_targets:params[:ignore_targets])
|
12
|
+
if output.length > 0
|
13
|
+
UI.error output
|
67
14
|
UI.error "Lost files found!"
|
68
15
|
else
|
69
16
|
UI.success "✅ Yupee! ✨ No lost files found! ✨"
|
70
17
|
end
|
71
18
|
|
72
|
-
|
19
|
+
output
|
73
20
|
end
|
74
21
|
|
75
22
|
def self.description
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-itargetchecker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Catalin Prata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|
@@ -152,13 +152,16 @@ dependencies:
|
|
152
152
|
version: 2.94.0
|
153
153
|
description:
|
154
154
|
email: catalin.prata@fortech.ro
|
155
|
-
executables:
|
155
|
+
executables:
|
156
|
+
- itargetchecker
|
156
157
|
extensions: []
|
157
158
|
extra_rdoc_files: []
|
158
159
|
files:
|
159
160
|
- LICENSE
|
160
161
|
- README.md
|
162
|
+
- bin/itargetchecker
|
161
163
|
- lib/fastlane/plugin/itargetchecker.rb
|
164
|
+
- lib/fastlane/plugin/itargetchecker/actions/itargetchecker.rb
|
162
165
|
- lib/fastlane/plugin/itargetchecker/actions/itargetchecker_action.rb
|
163
166
|
- lib/fastlane/plugin/itargetchecker/helper/itargetchecker_helper.rb
|
164
167
|
- lib/fastlane/plugin/itargetchecker/version.rb
|