cartup 0.1.7.1 → 1.0.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/CartBinaryUploader.gemspec +5 -3
- data/Gemfile.lock +16 -1
- data/README.md +48 -27
- data/bin/setup +4 -2
- data/lib/CartBinaryUploader/version.rb +1 -1
- data/lib/cart_logger.rb +4 -0
- data/lib/cartup.rb +40 -14
- data/lib/cartup_command_helper.rb +0 -1
- data/lib/{git_helper.rb → git_tools/git_helper.rb} +0 -0
- data/lib/storage/google_cloud_storage.rb +56 -0
- data/lib/storage/s3_cloud_storage.rb +74 -0
- data/lib/{google_cloud_storage.rb → storage/storage_type.rb} +56 -43
- metadata +38 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b529da15184419a5a526234a6fc53217ed14555
|
4
|
+
data.tar.gz: 6bf24022197f7ca8bf0fc3103ed6c9eef194329a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d14623ba35b5b2b389bef2e477e3b62276be420534b6948980b0dc65813ad3dfa7e3d3df7fa08fe314b77803c4df25e19a07eaeb6b62d28b8701677053e1b92a
|
7
|
+
data.tar.gz: 91db41918a0847b6aed2f71da4ee53aba8736d72ff8529971a452afd2b40c3ee2ad7eb920b14263621f3533825a1ef138048f480bda65d0be36737862ec4b573
|
data/CartBinaryUploader.gemspec
CHANGED
@@ -32,10 +32,12 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = ['cartup']
|
33
33
|
spec.require_paths = ['lib']
|
34
34
|
|
35
|
+
spec.add_development_dependency 'aws-sdk-s3', '~> 1.8', '>= 1.8.2'
|
35
36
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
36
|
-
spec.add_development_dependency '
|
37
|
-
spec.add_development_dependency 'minitest', '~> 5.0'
|
37
|
+
spec.add_development_dependency 'colorize', '~> 0.8.1'
|
38
38
|
spec.add_development_dependency 'google-cloud-storage', '~> 1.9'
|
39
39
|
spec.add_development_dependency 'json', '~> 2.1'
|
40
|
-
spec.add_development_dependency '
|
40
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
41
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
42
|
+
|
41
43
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cartup (
|
4
|
+
cartup (1.0.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -9,6 +9,19 @@ GEM
|
|
9
9
|
addressable (2.5.2)
|
10
10
|
public_suffix (>= 2.0.2, < 4.0)
|
11
11
|
ast (2.4.0)
|
12
|
+
aws-partitions (1.70.0)
|
13
|
+
aws-sdk-core (3.17.0)
|
14
|
+
aws-partitions (~> 1.0)
|
15
|
+
aws-sigv4 (~> 1.0)
|
16
|
+
jmespath (~> 1.0)
|
17
|
+
aws-sdk-kms (1.5.0)
|
18
|
+
aws-sdk-core (~> 3)
|
19
|
+
aws-sigv4 (~> 1.0)
|
20
|
+
aws-sdk-s3 (1.8.2)
|
21
|
+
aws-sdk-core (~> 3)
|
22
|
+
aws-sdk-kms (~> 1)
|
23
|
+
aws-sigv4 (~> 1.0)
|
24
|
+
aws-sigv4 (1.0.2)
|
12
25
|
colorize (0.8.1)
|
13
26
|
declarative (0.0.10)
|
14
27
|
declarative-option (0.1.0)
|
@@ -40,6 +53,7 @@ GEM
|
|
40
53
|
os (~> 0.9)
|
41
54
|
signet (~> 0.7)
|
42
55
|
httpclient (2.8.3)
|
56
|
+
jmespath (1.3.1)
|
43
57
|
json (2.1.0)
|
44
58
|
jwt (2.1.0)
|
45
59
|
little-plugger (1.1.4)
|
@@ -86,6 +100,7 @@ PLATFORMS
|
|
86
100
|
ruby
|
87
101
|
|
88
102
|
DEPENDENCIES
|
103
|
+
aws-sdk-s3 (~> 1.8, >= 1.8.2)
|
89
104
|
bundler (~> 1.16)
|
90
105
|
cartup!
|
91
106
|
colorize (~> 0.8.1)
|
data/README.md
CHANGED
@@ -1,28 +1,35 @@
|
|
1
1
|

|
2
|
-
# Cartup
|
2
|
+
# Cartup
|
3
3
|
|
4
|
-
**Cartup** is the
|
4
|
+
**Cartup** is the easiest way to share prebuilt [Carthage](https://github.com/Carthage/Carthage)
|
5
|
+
frameworks between projects.
|
5
6
|
|
6
|
-
The main propose of this gem is uploading the [Carthage](https://github.com/Carthage/Carthage)
|
7
|
-
storage like google drive, onedrive, dropbox or google cloud.
|
8
|
-
|
7
|
+
The main propose of this gem is uploading the [Carthage](https://github.com/Carthage/Carthage)
|
8
|
+
prebuilt frameworks to a cloud storage like google drive, onedrive, dropbox or google cloud.
|
9
|
+
To know more how to make pre-builds with Carthage please follow the
|
10
|
+
[link about how to do it](https://github.com/Carthage/Carthage#archive-prebuilt-frameworks-into-one-zip-file).
|
9
11
|
|
10
12
|
|
11
|
-
Currently, the main reason is because only github projects could
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
Currently, the main reason why Cartup exists is because only github projects could
|
14
|
+
upload and distribute prebuilt frameworks automatically, by using the great github
|
15
|
+
tool called ["RELEASES"](https://help.github.com/articles/creating-releases/).
|
16
|
+
But when you work using Bitbucket like I do (not by choice), the whole process must
|
17
|
+
be done manually: you must upload the prebuilt framework on some sort of cloud
|
18
|
+
storage, manage its version using a JSON file and upload it manually.
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
+
And because of that, the gem was born! To people like me, who are a bit lazy and
|
21
|
+
do not like doing manual job, this is for them!
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
**So, in a headline: Our gem wants to make the distribution process of
|
24
|
+
prebuild carthage binaries easier through the most popular storage clouds.**
|
25
|
+
|
26
|
+
*One big thanks to my friend and brother [Rafael Ferreira](https://github.com/RafaelPlantard)
|
27
|
+
who made the initial script. That's what gave me the idea to bring it to a ruby
|
28
|
+
plugin and distribute it to everybody with RubyGem!*
|
23
29
|
|
24
30
|
## Supported Storage Clouds
|
25
31
|
* [Firebase Cloud Storage](https://firebase.google.com/docs/storage/?gclid=Cj0KCQiAzfrTBRC_ARIsAJ5ps0uB9qOHR9kDhzlqReNfQlhrRJH7gWwHRCbl-XQRIJEvt9jN6ROPdxQaAohIEALw_wcB)
|
32
|
+
* [S3 Amazon](https://aws.amazon.com/s3/?sc_channel=PS&sc_campaign=acquisition_BR&sc_publisher=google&sc_medium=english_s3_b&sc_content=s3_e&sc_detail=s3%20amazon&sc_category=s3&sc_segment=89108864308&sc_matchtype=e&sc_country=BR&s_kwcid=AL!4422!3!89108864308!e!!g!!s3%20amazon&ef_id=WrKALgAABG2ITkaZ:20180321155422:s)
|
26
33
|
|
27
34
|
## Installation
|
28
35
|
|
@@ -44,8 +51,9 @@ Or install it yourself as:
|
|
44
51
|
|
45
52
|
### Setup with yaml
|
46
53
|
|
47
|
-
The first thing is setup the yaml file in
|
48
|
-
Create a file
|
54
|
+
The first thing is to setup the yaml file in your project.
|
55
|
+
Create a file named ```cart_uploader.yaml```.
|
56
|
+
Inside of this file, insert:
|
49
57
|
|
50
58
|
```yaml
|
51
59
|
project:
|
@@ -56,19 +64,24 @@ project:
|
|
56
64
|
project_id: "<Insert here Google project ID>"
|
57
65
|
credentials_file: "<Insert here The path to credential file that you download from firebase>"
|
58
66
|
bucket: "<Insert here the name of destination bucket on google cloud>"
|
67
|
+
s3:
|
68
|
+
region: "<Insert Region Name where you bucket is located"
|
69
|
+
bucket_name: "<The nam of you bucket>"
|
70
|
+
bucket_access_key: '<Your access key>'
|
71
|
+
bucket_secret_key: '<Your secret key>'
|
59
72
|
```
|
60
73
|
### Upload a binary
|
61
74
|
|
62
|
-
After you have created the ````yaml```` file and
|
63
|
-
some cloud storage.
|
75
|
+
After you have created the ````yaml```` file and set it up, you are ready to send
|
76
|
+
the prebuilt framework to some cloud storage.
|
64
77
|
|
65
|
-
**Before you
|
66
|
-
* Generated the build with carthage
|
78
|
+
**Before you run the upload command, make sure you have already passed through the following steps:**
|
79
|
+
* Generated the build with carthage with ```carthage build --no-skip-current```
|
67
80
|
* Archived the framework with carthage with the command ```carthage archive <YourFrameworkName>```
|
68
81
|
|
69
|
-
*If you
|
82
|
+
*If you have any doubts about how to generate prebuilt frameworks, [click here to see more information](https://github.com/Carthage/Carthage#archive-prebuilt-frameworks-into-one-zip-file))*
|
70
83
|
|
71
|
-
Now everything is alright
|
84
|
+
Now everything is alright, just run the following command:
|
72
85
|
|
73
86
|
if you are running with bundler:
|
74
87
|
```
|
@@ -82,13 +95,20 @@ cartup run
|
|
82
95
|
|
83
96
|
## Development
|
84
97
|
|
85
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
98
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
99
|
+
`rake test` to run the tests. You can also run `bin/console` for an interactive
|
100
|
+
prompt that will allow you to experiment.
|
86
101
|
|
87
|
-
To install this gem
|
102
|
+
To install this gem into your local machine, run `bundle exec rake install`. To
|
103
|
+
release a new version, update the version number in `version.rb`, and then run
|
104
|
+
`bundle exec rake release`. This will create a git tag for the version, push git
|
105
|
+
commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
88
106
|
|
89
107
|
## Contributing
|
90
108
|
|
91
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/mendesbarreto/cartup/.
|
109
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/mendesbarreto/cartup/.
|
110
|
+
This project is intended to be a safe, welcoming space for collaboration, and contributors
|
111
|
+
are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
92
112
|
|
93
113
|
## License
|
94
114
|
|
@@ -96,4 +116,5 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
96
116
|
|
97
117
|
## Code of Conduct
|
98
118
|
|
99
|
-
Everyone interacting in the Cartup project’s codebases, issue trackers, chat rooms
|
119
|
+
Everyone interacting in the Cartup project’s codebases, issue trackers, chat rooms
|
120
|
+
and mailing lists are expected to follow the [code of conduct](https://github.com/mendesbarreto/cartup/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/setup
CHANGED
data/lib/cart_logger.rb
CHANGED
data/lib/cartup.rb
CHANGED
@@ -3,40 +3,66 @@ require 'fileutils'
|
|
3
3
|
require 'yaml'
|
4
4
|
require 'json'
|
5
5
|
require 'ostruct'
|
6
|
-
require 'google_cloud_storage'
|
7
|
-
require '
|
6
|
+
require 'storage/google_cloud_storage'
|
7
|
+
require 'storage/storage_type'
|
8
|
+
require 'git_tools/git_helper'
|
8
9
|
require 'cartup_command_helper'
|
9
10
|
require 'cart_logger'
|
11
|
+
require 'storage/s3_cloud_storage'
|
10
12
|
|
11
13
|
module CartBinaryUploader
|
12
14
|
def self.run
|
13
15
|
config = get_config
|
14
16
|
|
15
|
-
project_id = config.project.google.project_id
|
16
|
-
credentials_file = config.project.google.credentials_file
|
17
|
-
bucket_name = config.project.google.bucket
|
18
|
-
framework_name = config.project.framework.name
|
19
17
|
framework_version = config.project.framework.version
|
20
18
|
|
21
19
|
git_helper = GitHelper.new
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
bucket_name,
|
26
|
-
framework_name,
|
27
|
-
framework_version)
|
28
|
-
google_cloud_storage.upload_framework
|
21
|
+
cloud_storage = setup config
|
22
|
+
cloud_storage.upload_framework
|
29
23
|
git_helper.tag_to framework_version
|
30
24
|
git_helper.push
|
31
25
|
end
|
32
26
|
|
27
|
+
def self.setup config
|
28
|
+
if !config.project.google?
|
29
|
+
CartLogger.log_info 'Starting with google cloud'
|
30
|
+
setup_google_cloud config
|
31
|
+
else
|
32
|
+
CartLogger.log_info 'Starting with s3 cloud'
|
33
|
+
setup_s3_cloud config
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.setup_google_cloud(config)
|
38
|
+
GoogleCloudStorage.new(config.project.google.project_id,
|
39
|
+
config.project.google.credentials_file,
|
40
|
+
config.project.google.bucket,
|
41
|
+
config.project.framework.name,
|
42
|
+
config.project.framework.version)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.setup_s3_cloud(config)
|
46
|
+
S3CloudStorage.new(config.project.s3.bucket_name,
|
47
|
+
config.project.s3.bucket_access_key,
|
48
|
+
config.project.s3.bucket_secret_key,
|
49
|
+
config.project.s3.region,
|
50
|
+
config.project.framework.name,
|
51
|
+
config.project.framework.version)
|
52
|
+
end
|
53
|
+
|
33
54
|
def self.init
|
34
55
|
CartBinaryUploader.copy_template_yaml
|
35
56
|
end
|
36
57
|
|
37
58
|
def self.copy_template_yaml
|
38
|
-
from_source_file = './lib/template.yaml'
|
39
|
-
to_destination_file = './cart_uploader.yaml'
|
59
|
+
from_source_file = './lib/template.yaml'.freeze
|
60
|
+
to_destination_file = './cart_uploader.yaml'.freeze
|
61
|
+
|
62
|
+
if File.file?(to_destination_file)
|
63
|
+
throw :cart_up_already_initialized
|
64
|
+
end
|
65
|
+
|
40
66
|
CartBinaryUploader.copy_with_path from_source_file, to_destination_file
|
41
67
|
end
|
42
68
|
|
File without changes
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'google/cloud/storage'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'yaml'
|
4
|
+
require 'json'
|
5
|
+
require 'cart_logger'
|
6
|
+
require_relative 'storage_type'
|
7
|
+
|
8
|
+
module CartBinaryUploader
|
9
|
+
class GoogleCloudStorage < Storage
|
10
|
+
attr_accessor :credentials_file_path
|
11
|
+
attr_accessor :project_id
|
12
|
+
|
13
|
+
def initialize(project_id,
|
14
|
+
credentials_file,
|
15
|
+
bucket_name,
|
16
|
+
framework_name,
|
17
|
+
framework_version)
|
18
|
+
@credentials_file_path = credentials_file
|
19
|
+
@project_id = project_id
|
20
|
+
super(bucket_name, framework_name, framework_version)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_storage
|
24
|
+
@storage = Google::Cloud::Storage.new(project_id: @project_id,
|
25
|
+
credentials: @credentials_file_path)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_bucket
|
29
|
+
@bucket = @storage.bucket @bucket_name
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_file(file_path)
|
33
|
+
@bucket_object = @bucket.create_file(file_path, file_path)
|
34
|
+
@bucket_object.signed_url(method: 'GET', expires: 3.154e+8)
|
35
|
+
end
|
36
|
+
|
37
|
+
def file_on_storage_cloud(file)
|
38
|
+
bucket_file = bucket.file file
|
39
|
+
!bucket_file.nil?
|
40
|
+
end
|
41
|
+
|
42
|
+
def download_config_json_file(from_file)
|
43
|
+
json_file = @bucket.file from_file
|
44
|
+
json_file.download from_file
|
45
|
+
json_file
|
46
|
+
end
|
47
|
+
|
48
|
+
def upload_json(json_path)
|
49
|
+
CartLogger.log_info 'Starting upload file to google cloud'
|
50
|
+
@bucket.create_file(json_path, json_path)
|
51
|
+
CartLogger.log_info 'Uploaded complete'
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'aws-sdk-s3'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
require 'yaml'
|
5
|
+
require 'json'
|
6
|
+
require 'cart_logger'
|
7
|
+
require_relative 'storage_type'
|
8
|
+
|
9
|
+
module CartBinaryUploader
|
10
|
+
class S3CloudStorage < Storage
|
11
|
+
|
12
|
+
attr_accessor :region_name
|
13
|
+
attr_accessor :bucket_secret_key
|
14
|
+
attr_accessor :bucket_access_key
|
15
|
+
|
16
|
+
def initialize(bucket_name,
|
17
|
+
bucket_secrete_key,
|
18
|
+
bucket_acess_key,
|
19
|
+
region_name,
|
20
|
+
framework_name,
|
21
|
+
framework_version)
|
22
|
+
@region_name = region_name
|
23
|
+
@bucket_secret_key = bucket_secrete_key
|
24
|
+
@bucket_access_key = bucket_acess_key
|
25
|
+
setup_s3_global
|
26
|
+
super(bucket_name, framework_name, framework_version)
|
27
|
+
end
|
28
|
+
|
29
|
+
def setup_s3_global
|
30
|
+
Aws.config = {
|
31
|
+
:access_key_id => @bucket_access_key,
|
32
|
+
:secret_access_key => @bucket_secret_key,
|
33
|
+
:region => @region_name,
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def create_storage
|
38
|
+
@storage = Aws::S3::Resource.new(credentials: Aws::Credentials.new(@bucket_secret_key, @bucket_access_key),
|
39
|
+
region: @region_name)
|
40
|
+
end
|
41
|
+
|
42
|
+
def create_bucket
|
43
|
+
@bucket = @storage.bucket(@bucket_name)
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_file(file_path)
|
47
|
+
puts "Creating #{file_path} on s3"
|
48
|
+
@bucket_object = @bucket.object(file_path)
|
49
|
+
@bucket_object.upload_file("./#{file_path}", acl:'public-read')
|
50
|
+
puts "Object #{file_path} created with url #{@bucket_object.public_url}"
|
51
|
+
@bucket_object.public_url
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
def file_on_storage_cloud(file)
|
56
|
+
@bucket.objects.each do |object|
|
57
|
+
if object.key == file
|
58
|
+
return true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
false
|
62
|
+
end
|
63
|
+
|
64
|
+
def download_config_json_file(from_file)
|
65
|
+
@bucket.object(from_file)
|
66
|
+
end
|
67
|
+
|
68
|
+
def upload_json(json_path)
|
69
|
+
CartLogger.log_info 'Starting upload json file to s3 cloud'
|
70
|
+
create_file(json_path)
|
71
|
+
CartLogger.log_info 'Uploaded complete'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -1,52 +1,44 @@
|
|
1
|
-
require 'google/cloud/storage'
|
2
1
|
require 'fileutils'
|
3
2
|
require 'yaml'
|
4
3
|
require 'json'
|
5
4
|
require 'cart_logger'
|
6
5
|
|
7
6
|
module CartBinaryUploader
|
8
|
-
class
|
9
|
-
|
7
|
+
class Storage
|
10
8
|
FRAMEWORK_EXTENSION_NAME = '.framework'.freeze
|
11
9
|
JSON_EXTENSION_NAME = '.json'.freeze
|
12
10
|
JSON_EXTENSION_ZIP = '.zip'.freeze
|
13
11
|
|
14
|
-
attr_accessor :project_id
|
15
|
-
attr_accessor :credentials_file_path
|
16
12
|
attr_accessor :bucket_name
|
17
13
|
attr_accessor :framework_name
|
18
14
|
attr_accessor :framework_version
|
19
|
-
|
20
|
-
attr_accessor :storage
|
21
15
|
attr_accessor :bucket
|
16
|
+
attr_accessor :json_file
|
17
|
+
attr_accessor :bucket_object
|
22
18
|
|
23
|
-
def initialize(
|
24
|
-
credentials_file,
|
25
|
-
bucket_name,
|
19
|
+
def initialize(bucket_name,
|
26
20
|
framework_name,
|
27
|
-
framework_version
|
28
|
-
@project_id = project_id
|
29
|
-
@credentials_file_path = credentials_file
|
21
|
+
framework_version)
|
30
22
|
@bucket_name = bucket_name
|
31
23
|
@framework_name = framework_name
|
32
24
|
@framework_version = framework_version
|
25
|
+
|
26
|
+
CartLogger.log_info "Creating storage"
|
33
27
|
create_storage
|
28
|
+
CartLogger.log_info "Creating bucket name: #{@bucket_name}"
|
34
29
|
create_bucket
|
35
30
|
end
|
36
31
|
|
37
32
|
def create_storage
|
38
|
-
|
39
|
-
@storage = Google::Cloud::Storage.new(project_id: @project_id,
|
40
|
-
credentials: @credentials_file_path)
|
33
|
+
throw :not_implemented, "The current method not implemented"
|
41
34
|
end
|
42
35
|
|
43
36
|
def create_bucket
|
44
|
-
|
45
|
-
@bucket = @storage.bucket @bucket_name
|
37
|
+
throw :not_implemented, "The current method not implemented"
|
46
38
|
end
|
47
39
|
|
48
40
|
def upload_framework
|
49
|
-
CartLogger.log_info "Prepering to upload file to
|
41
|
+
CartLogger.log_info "Prepering to upload file to cloud"
|
50
42
|
framework_name_source = @framework_name + FRAMEWORK_EXTENSION_NAME + JSON_EXTENSION_ZIP
|
51
43
|
framework_name_destination = @framework_name + FRAMEWORK_EXTENSION_NAME + "." + @framework_version + JSON_EXTENSION_ZIP
|
52
44
|
json_path = @framework_name + JSON_EXTENSION_NAME
|
@@ -55,38 +47,63 @@ module CartBinaryUploader
|
|
55
47
|
CartLogger.log_info "Framework Destination: #{framework_name_destination}"
|
56
48
|
CartLogger.log_info "JSON Path: #{json_path}"
|
57
49
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
50
|
+
CartLogger.log_info "Verifying if the version file #{framework_name_destination} already exists"
|
51
|
+
unless file_on_storage_cloud framework_name_destination
|
52
|
+
CartLogger.log_info "File version #{@framework_version} not exists yet, starting generate file on cloud"
|
53
|
+
|
54
|
+
if file_on_storage_cloud(json_path)
|
55
|
+
@json_file = download_config_json_file(json_path)
|
56
|
+
if @json_file.nil?
|
57
|
+
throw :could_not_download_json_file, "JSON With name: #{json_path}"
|
58
|
+
end
|
59
|
+
else
|
60
|
+
CartLogger.log_warn "Creating empty json because it not exsits yet on cloud"
|
61
|
+
create_empty_json_file(json_path)
|
66
62
|
end
|
67
63
|
|
68
|
-
|
69
|
-
|
64
|
+
copy_local_file(framework_name_source, framework_name_destination)
|
65
|
+
|
66
|
+
shared_url = create_file(framework_name_destination)
|
70
67
|
|
71
68
|
json_object = load_json_object json_path
|
72
69
|
json_object[@framework_version] = shared_url
|
73
70
|
|
74
71
|
save_json_object(json_path, json_object)
|
75
72
|
|
73
|
+
CartLogger.log_info 'Starting upload file to storage cloud'
|
76
74
|
upload_json json_path
|
75
|
+
CartLogger.log_info 'Uploaded complete'
|
76
|
+
else
|
77
|
+
throw :the_version_file_already_exists, "The current version: #{@framework_version} already exists on cloud"
|
77
78
|
end
|
78
79
|
end
|
79
80
|
|
80
|
-
def
|
81
|
-
|
82
|
-
|
83
|
-
|
81
|
+
def create_file(file_path)
|
82
|
+
throw :not_implemented, "The current method not implemented"
|
83
|
+
end
|
84
|
+
|
85
|
+
def create_public_url(file_path)
|
86
|
+
throw :not_implemented, "The current method not implemented"
|
87
|
+
end
|
88
|
+
|
89
|
+
def create_local_file(file_name)
|
90
|
+
throw :not_implemented, "The current method not implemented"
|
91
|
+
end
|
92
|
+
|
93
|
+
def file_on_storage_cloud(file)
|
94
|
+
throw :not_implemented, "The current method not implemented"
|
84
95
|
end
|
85
96
|
|
86
97
|
def download_config_json_file(from_file)
|
87
|
-
|
88
|
-
|
89
|
-
|
98
|
+
throw :not_implemented, "The current method not implemented"
|
99
|
+
end
|
100
|
+
|
101
|
+
def upload_json jsonPath
|
102
|
+
throw :not_implemented, "The current method not implemented"
|
103
|
+
end
|
104
|
+
|
105
|
+
def copy_local_file(framework_name_source, framework_name_destination)
|
106
|
+
FileUtils.copy_file(framework_name_source, framework_name_destination)
|
90
107
|
end
|
91
108
|
|
92
109
|
def load_json_object(json_path)
|
@@ -105,13 +122,9 @@ module CartBinaryUploader
|
|
105
122
|
CartLogger.log_info 'JSON Saved'
|
106
123
|
end
|
107
124
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
@bucket.create_file(jsonPath, jsonPath)
|
112
|
-
CartLogger.log_info 'Uploaded complete'
|
125
|
+
def create_empty_json_file(file_name)
|
126
|
+
json_object = JSON.parse('{}')
|
127
|
+
save_json_object(file_name, json_object)
|
113
128
|
end
|
114
|
-
|
115
129
|
end
|
116
130
|
end
|
117
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Douglas Mendes
|
@@ -9,50 +9,56 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-03-
|
12
|
+
date: 2018-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: aws-sdk-s3
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '1.
|
20
|
+
version: '1.8'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.8.2
|
21
24
|
type: :development
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
28
|
- - "~>"
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: '1.
|
30
|
+
version: '1.8'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.2
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
35
|
+
name: bundler
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
38
|
- - "~>"
|
33
39
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
40
|
+
version: '1.16'
|
35
41
|
type: :development
|
36
42
|
prerelease: false
|
37
43
|
version_requirements: !ruby/object:Gem::Requirement
|
38
44
|
requirements:
|
39
45
|
- - "~>"
|
40
46
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
47
|
+
version: '1.16'
|
42
48
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
49
|
+
name: colorize
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
45
51
|
requirements:
|
46
52
|
- - "~>"
|
47
53
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
54
|
+
version: 0.8.1
|
49
55
|
type: :development
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
52
58
|
requirements:
|
53
59
|
- - "~>"
|
54
60
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
61
|
+
version: 0.8.1
|
56
62
|
- !ruby/object:Gem::Dependency
|
57
63
|
name: google-cloud-storage
|
58
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,19 +88,33 @@ dependencies:
|
|
82
88
|
- !ruby/object:Gem::Version
|
83
89
|
version: '2.1'
|
84
90
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
91
|
+
name: minitest
|
86
92
|
requirement: !ruby/object:Gem::Requirement
|
87
93
|
requirements:
|
88
94
|
- - "~>"
|
89
95
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0
|
96
|
+
version: '5.0'
|
91
97
|
type: :development
|
92
98
|
prerelease: false
|
93
99
|
version_requirements: !ruby/object:Gem::Requirement
|
94
100
|
requirements:
|
95
101
|
- - "~>"
|
96
102
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0
|
103
|
+
version: '5.0'
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rake
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '10.0'
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '10.0'
|
98
118
|
description: " Cartup is the easyest way to share prebuilt Carthage frameworks
|
99
119
|
between projects.\n"
|
100
120
|
email:
|
@@ -123,8 +143,10 @@ files:
|
|
123
143
|
- lib/cart_logger.rb
|
124
144
|
- lib/cartup.rb
|
125
145
|
- lib/cartup_command_helper.rb
|
126
|
-
- lib/git_helper.rb
|
127
|
-
- lib/google_cloud_storage.rb
|
146
|
+
- lib/git_tools/git_helper.rb
|
147
|
+
- lib/storage/google_cloud_storage.rb
|
148
|
+
- lib/storage/s3_cloud_storage.rb
|
149
|
+
- lib/storage/storage_type.rb
|
128
150
|
- lib/template.yaml
|
129
151
|
- logo/cartup_logo.png
|
130
152
|
homepage: https://github.com/mendesbarreto/cartup.git
|