cocoapods-amicable 0.1.2 → 0.2.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 +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,
|