cartup 0.1.7.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
![](logo/cartup_logo.png)
|
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
|