cocoapods-lazy 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d87ba143103b95aefc36a1b32a72b940caaab827
4
+ data.tar.gz: 6727705de861acbd677e6871faae26301e176f2f
5
+ SHA512:
6
+ metadata.gz: 81be5ca2843d006332947e9e4617faf132fe76830c3c29c05f244770b1234e67cc47e94b9426dc798a160a26b4f83c09d312254edcf1aa2fbea20b352dc5cf99
7
+ data.tar.gz: 867dce4e9d8b32dafc4e52005df326ded1b3417b3f37f292377d25e77b24559b117980e79588e9f8c84a9a285e75ea269e5122156cf5fdcc7e9e456a35112ab2
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+
4
+ require 'cocoapods-lazy'
5
+
6
+ CocoapodsLazy::Invoker.invoke(ARGV)
@@ -0,0 +1,60 @@
1
+ require 'cocoapods-lazy/version'
2
+ require 'cocoapods-lazy/podfile_lock'
3
+ require 'cocoapods-lazy/repository'
4
+ require 'cocoapods'
5
+
6
+ module CocoapodsLazy
7
+ class Invoker
8
+ def self.invoke(argv)
9
+ use_case = UseCase.new()
10
+ case
11
+ when argv.include?('install')
12
+ use_case.install
13
+ when argv.include?('update')
14
+ use_case.update()
15
+ when argv.include?('store')
16
+ use_case.store()
17
+ else
18
+ raise "Unknown command!"
19
+ end
20
+ end
21
+ end
22
+
23
+ class UseCase
24
+ def initialize()
25
+ @repository = Repository.new("PodStore.env")
26
+ end
27
+
28
+ def install
29
+ puts "Check local prebuild"
30
+ if read_podfile_checksum() != read_manifest_checksum()
31
+ puts 'Drop pods'
32
+ `rm -rf Pods`
33
+ @repository.download(name: read_podfile_checksum())
34
+ else
35
+ puts 'Pods is actual'
36
+ end
37
+ Pod::Command.run(ARGV)
38
+ store() if read_podfile_checksum() != read_manifest_checksum()
39
+ end
40
+
41
+ def update
42
+ Pod::Command.run(ARGV)
43
+ store()
44
+ end
45
+
46
+ def store
47
+ @repository.upload(name: read_podfile_checksum())
48
+ end
49
+
50
+ private
51
+
52
+ def read_podfile_checksum
53
+ PodfileLock.new("Podfile.lock").checksum
54
+ end
55
+
56
+ def read_manifest_checksum
57
+ PodfileLock.new("./Pods/Manifest.lock").checksum
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,13 @@
1
+ class PodfileLock
2
+ def initialize(filename)
3
+ @filename = filename
4
+ end
5
+
6
+ def checksum
7
+ begin
8
+ File.open(@filename).read().match(/(?<=PODFILE CHECKSUM: )\w*/).to_s
9
+ rescue
10
+ nil
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ require 'dotenv'
2
+
3
+ class Repository
4
+ def initialize(file)
5
+ Dotenv.load("#{file}")
6
+ @user = ENV['STORE_USER']
7
+ @password = ENV['STORE_PASSWORD']
8
+ @base_url = ENV['BASE_URL']
9
+ end
10
+
11
+ def download(name:)
12
+ zip_name = "#{name}.zip"
13
+ url = @base_url + zip_name
14
+ puts `curl --fail -v -u #{@user}:#{@password} #{url} --output #{zip_name}`
15
+ `unzip #{zip_name}`
16
+ `rm -rf #{zip_name}`
17
+ end
18
+
19
+ def upload(name:)
20
+ zip_name = "#{name}.zip"
21
+ url = @base_url + zip_name
22
+ puts "Make zip: #{zip_name}"
23
+ `zip -9 -r -y #{zip_name} Pods`
24
+ puts "Storing to #{url}"
25
+ `curl --fail -v -u #{@user}:#{@password} --upload-file #{zip_name} #{url}`
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module CocoapodsLazy
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cocoapods-lazy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Artem Mylnikov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dotenv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.7.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.7.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: cocoapods
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ description: Share pods dir to team
70
+ email:
71
+ - ajjnix@gmail.com
72
+ executables:
73
+ - cocoapods-lazy
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - bin/cocoapods-lazy
78
+ - lib/cocoapods-lazy.rb
79
+ - lib/cocoapods-lazy/podfile_lock.rb
80
+ - lib/cocoapods-lazy/repository.rb
81
+ - lib/cocoapods-lazy/version.rb
82
+ homepage: https://github.com/ajjnix/cocoapods-lazy
83
+ licenses:
84
+ - MIT
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.5.2.3
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Gem for store and share pods
106
+ test_files: []