xcoed 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/xcoed +28 -0
  3. data/lib/xcoed.rb +11 -0
  4. data/lib/xcoed/version.rb +1 -2
  5. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5575b8dacfa25d57fe1143a288653ad09ac8eb34d8690223259c021788253a6f
4
- data.tar.gz: aeeeb1953d378a1e74d29a16e3f720d21f253b128647829545bf79886b5fda89
3
+ metadata.gz: 82a2f0dbe9c4bce9cf5f5be560b0da2f4ca986d64ea8953a2a50a3f83588ab8c
4
+ data.tar.gz: '0916221f57884e23ddf1813b4b3fffb93ebf92a0d9a5e2a9b5009410962a028f'
5
5
  SHA512:
6
- metadata.gz: fa23771a18d4885e6f0fe89f95b7b9112f76f78b6edfba18787eec5696e3167a03a9ae57c163ab792eb08048b531ce011965a5d64ed84ef08fe541129ddba35c
7
- data.tar.gz: 71927fe47719762ed6a5723d7f26ffed02f726cddd26afc4f8db69db656ec3673064ed8013bb0ad945f1a6896906276750392bc68f8c51a3f86d471c6322e37b
6
+ metadata.gz: a5c28b654a7640d371a2c70040a07817ea9dd7e8c8241fceb6ecd559ebe754c11274546f02b157dc9e9b4a4b2077d591a475aa2386fa9d6be2cdba20d730b878
7
+ data.tar.gz: bcd2a9a24cda75cadc55103164d48ff440b28bb5fdd5be6f4ab145574cd0c6a2400c663b39dbb85c77e39a297a7a9e5354804f92558decfcc8165b4c25c482d6
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'xcodeproj'
4
+ require 'xcoed'
5
+
6
+ def exit_with_message(message)
7
+ STDERR.puts message
8
+ STDERR.puts 'Usage: xcake [project.xcodeproj]'
9
+ STDERR.puts 'If there\'s only one project in the directory, the parameter can be omitted.'
10
+ exit 1
11
+ end
12
+
13
+ if ARGV[1].nil?
14
+ potential_names = Dir['*.xcodeproj']
15
+ if potential_names.empty?
16
+ exit_with_message 'Could not find a project in current directory!'
17
+ elsif potential_names.count > 1
18
+ exit_with_message "Multiple project found in current directory!\nPotential projects: `#{potential_names}`"
19
+ else
20
+ project_name = potential_names.first
21
+ end
22
+ else
23
+ project_name = ARGV[1]
24
+ end
25
+
26
+ project = Xcodeproj::Project.open(project_name)
27
+ Xcoed.integrate_package_swift!(project)
28
+ project.save
@@ -20,6 +20,10 @@ module Xcoed
20
20
  target['dependencies'].each do |dependency|
21
21
  by_name = dependency['byName'].first
22
22
 
23
+ target_ref.package_product_dependencies
24
+ .select { |p| p.product_name == by_name }
25
+ .each(&:remove_from_project)
26
+
23
27
  package_dep = Xcodeproj::Project::Object::XCSwiftPackageProductDependency.new(project, project.generate_uuid)
24
28
  package_dep.product_name = by_name
25
29
 
@@ -42,6 +46,10 @@ module Xcoed
42
46
  end
43
47
 
44
48
  def self.add_remote_swift_package_reference(project, dependency)
49
+ project.root_object.package_references
50
+ .select { |r| r.repositoryURL.downcase == dependency['url'].downcase }
51
+ .each(&:remove_from_project)
52
+
45
53
  package_ref = Xcodeproj::Project::Object::XCRemoteSwiftPackageReference.new(project, project.generate_uuid)
46
54
  package_ref.repositoryURL = dependency['url']
47
55
  package_ref.requirement = {
@@ -55,6 +63,9 @@ module Xcoed
55
63
 
56
64
  def self.add_local_swift_package_reference(project, dependency)
57
65
  local_packages_group = local_packages_group(project)
66
+ local_packages_group.children
67
+ .select { |c| File.expand_path(c.path).downcase == dependency['url'].downcase }
68
+ .each(&:remove_from_project)
58
69
  package_ref = Xcodeproj::Project::Object::FileReferencesFactory.new_reference(local_packages_group, dependency['url'], :group)
59
70
  package_ref.last_known_file_type = 'folder'
60
71
  package_ref
@@ -1,4 +1,3 @@
1
1
  module Xcoed
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
4
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcoed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Makarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2020-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hooks
@@ -230,10 +230,12 @@ description: Automate adding Swift PM packages to an Xcode project using a regul
230
230
  `Package.swift` file.
231
231
  email:
232
232
  - igormaka@gmail.com
233
- executables: []
233
+ executables:
234
+ - xcoed
234
235
  extensions: []
235
236
  extra_rdoc_files: []
236
237
  files:
238
+ - bin/xcoed
237
239
  - lib/xcoed.rb
238
240
  - lib/xcoed/constants.rb
239
241
  - lib/xcoed/version.rb