cocoapods-amicable 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cocoapods_amicable.rb +59 -81
- data/lib/cocoapods_plugin.rb +0 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7206583281f3373c1c53205ea9294ba0528b20b7f12c749ed1b5847e7540f657
|
4
|
+
data.tar.gz: 88025c9a7c09a7d07b70d10751486773436c8bdec654ea9b73069e0f9d4cddaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f3ec86cea08e8eb518d178389a0420bdba5e927a2fa97afbc4655deb97f5c59f64c226533fc3196741866c6c6e8a5d2cece7788990c411ed9fe3ae0c326d18e
|
7
|
+
data.tar.gz: dc9a85f45341ce0d9f08634993179c27ef40b1e6aba0e22615fa68de89a03ff562108008d4556d62177a683af6a0573feb31f1798ffa313edf3da052e1594387
|
data/lib/cocoapods_amicable.rb
CHANGED
@@ -1,81 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module CocoaPodsAmicable
|
4
|
-
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def fix!
|
10
|
-
Pod::UI.titled_section 'Moving the Podfile checksum from the lockfile' do
|
11
|
-
@checksum = remove_checksum_from_lockfiles
|
12
|
-
write_sha1_file
|
13
|
-
update_check_manifest_script_phases
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
attr_reader :checksum
|
20
|
-
|
21
|
-
def sandbox
|
22
|
-
@post_install_context.sandbox
|
23
|
-
end
|
24
|
-
|
25
|
-
def lockfiles
|
26
|
-
[Pod::Config.instance.lockfile_path, sandbox.manifest_path].map do |lockfile_path|
|
27
|
-
Pod::Lockfile.from_file(lockfile_path)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def remove_checksum_from_lockfiles
|
32
|
-
checksums = lockfiles.map do |lockfile|
|
33
|
-
checksum = lockfile.internal_data.delete('PODFILE CHECKSUM')
|
34
|
-
lockfile.write_to_disk(lockfile.defined_in_file)
|
35
|
-
checksum
|
36
|
-
end.uniq
|
37
|
-
case checksums.size
|
38
|
-
when 1
|
39
|
-
checksums.first
|
40
|
-
else
|
41
|
-
raise 'Multiple (different) podfiles checksums found'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def sha1_file_path
|
46
|
-
sandbox.root + 'Podfile.sha1'
|
47
|
-
end
|
48
|
-
|
49
|
-
def podfile_basename
|
50
|
-
File.basename(Pod::Config.instance.podfile.defined_in_file)
|
51
|
-
end
|
52
|
-
|
53
|
-
def write_sha1_file
|
54
|
-
return unless name = podfile_basename
|
55
|
-
sha1_file_path.open('w') do |f|
|
56
|
-
f.write <<-EOS
|
57
|
-
#{checksum} #{name}
|
58
|
-
EOS
|
59
|
-
end
|
60
|
-
end
|
4
|
+
module TargetIntegratorMixin
|
5
|
+
def add_check_manifest_lock_script_phase
|
6
|
+
podfile = target.target_definition.podfile
|
7
|
+
return super unless podfile.plugins.key?('cocoapods-amicable')
|
61
8
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
umbrella_target.user_targets.each do |user_target|
|
67
|
-
build_phase = user_target.build_phases.find do |bp|
|
68
|
-
bp.name.end_with? Pod::Installer::UserProjectIntegrator::TargetIntegrator::CHECK_MANIFEST_PHASE_NAME
|
69
|
-
end
|
70
|
-
update_check_manifest_script_phase(build_phase)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
user_projects.uniq.each(&:save)
|
75
|
-
end
|
9
|
+
phase_name = Pod::Installer::UserProjectIntegrator::TargetIntegrator::CHECK_MANIFEST_PHASE_NAME
|
10
|
+
native_targets.each do |native_target|
|
11
|
+
phase = Pod::Installer::UserProjectIntegrator::TargetIntegrator.create_or_update_build_phase(native_target, Pod::Installer::UserProjectIntegrator::TargetIntegrator::BUILD_PHASE_PREFIX + phase_name)
|
12
|
+
native_target.build_phases.unshift(phase).uniq! unless native_target.build_phases.first == phase
|
76
13
|
|
77
|
-
|
78
|
-
build_phase.shell_script = <<-SH
|
14
|
+
phase.shell_script = <<-SH
|
79
15
|
set -e
|
80
16
|
set -u
|
81
17
|
set -o pipefail
|
@@ -94,16 +30,58 @@ fi
|
|
94
30
|
|
95
31
|
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
|
96
32
|
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"
|
97
|
-
|
33
|
+
SH
|
34
|
+
|
35
|
+
phase.input_paths = %w[
|
36
|
+
${PODS_PODFILE_DIR_PATH}/Podfile.lock
|
37
|
+
${PODS_ROOT}/Manifest.lock
|
38
|
+
${PODS_ROOT}/Podfile.sha1
|
39
|
+
]
|
40
|
+
if name = podfile.defined_in_file && podfile.defined_in_file.basename
|
41
|
+
phase.input_paths << "${PODS_PODFILE_DIR_PATH}/#{name}"
|
42
|
+
end
|
43
|
+
phase.output_paths = [target.check_manifest_lock_script_output_file_path]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
module InstallerMixin
|
49
|
+
def write_lockfiles
|
50
|
+
super
|
51
|
+
return unless podfile.plugins.key?('cocoapods-amicable')
|
52
|
+
return unless checksum = podfile.checksum
|
53
|
+
return unless podfile_path = podfile.defined_in_file
|
54
|
+
checksum_path = sandbox.root + 'Podfile.sha1'
|
98
55
|
|
99
|
-
|
100
|
-
|
101
|
-
${PODS_ROOT}/Manifest.lock
|
102
|
-
${PODS_ROOT}/Podfile.sha1
|
103
|
-
]
|
104
|
-
if name = podfile_basename
|
105
|
-
build_phase.input_paths << "${PODS_PODFILE_DIR_PATH}/#{name}"
|
56
|
+
Pod::UI.message "- Writing Podfile checksum in #{Pod::UI.path checksum_path}" do
|
57
|
+
checksum_path.open('w') { |f| f << checksum << ' ' << podfile_path.basename.to_s << "\n" }
|
106
58
|
end
|
107
59
|
end
|
108
60
|
end
|
61
|
+
|
62
|
+
module LockfileMixin
|
63
|
+
def generate(podfile, *)
|
64
|
+
lockfile = super
|
65
|
+
lockfile.internal_data.delete('PODFILE CHECKSUM') if podfile.plugins.key?('cocoapods-amicable')
|
66
|
+
lockfile
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
module Pod
|
72
|
+
class Installer
|
73
|
+
prepend ::CocoaPodsAmicable::InstallerMixin
|
74
|
+
|
75
|
+
class UserProjectIntegrator
|
76
|
+
class TargetIntegrator
|
77
|
+
prepend ::CocoaPodsAmicable::TargetIntegratorMixin
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class Lockfile
|
83
|
+
class << self
|
84
|
+
prepend ::CocoaPodsAmicable::LockfileMixin
|
85
|
+
end
|
86
|
+
end
|
109
87
|
end
|
data/lib/cocoapods_plugin.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-amicable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Giddins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02
|
11
|
+
date: 2018-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
67
|
version: '0'
|
68
68
|
requirements: []
|
69
69
|
rubyforge_project:
|
70
|
-
rubygems_version: 2.7.
|
70
|
+
rubygems_version: 2.7.3
|
71
71
|
signing_key:
|
72
72
|
specification_version: 4
|
73
73
|
summary: A CocoaPods plugin that moves the Podfile checksum to a file in the Sandbox,
|