datapimp 1.0.13 → 1.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/datapimp +3 -8
- data/lib/datapimp/configuration.rb +9 -4
- data/lib/datapimp/logging.rb +1 -0
- data/lib/datapimp/sync/s3_bucket.rb +7 -3
- data/lib/datapimp/util.rb +16 -0
- data/lib/datapimp/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe14e7bc0d6be32f769b6fac511147dc2cef501d
|
4
|
+
data.tar.gz: 470fdf3998730258b25faec69bffca68b7db465d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15440f01cee38dd52a4256c73796302a0ffd732de8c5b42dd43f2531c3794e8ff12ed1f078146dc660718b5fd575b7ce09d90d0546192bb93ed3ae32763fc8e0
|
7
|
+
data.tar.gz: 2ba18490dac8bc77d4ccc57eb76482c87ad8381f3e7ec21ff9e00a823197af66c0ba6ecaddf1599aa7bca8ed773dd99d8bc5acee41ca482040908ed25b804118
|
data/bin/datapimp
CHANGED
@@ -1,16 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
Bundler.require
|
6
|
-
rescue
|
7
|
-
require "rubygems"
|
8
|
-
end
|
9
|
-
|
10
|
-
$:.unshift Pathname(File.dirname(__FILE__)).join("..","lib")
|
3
|
+
require "rubygems"
|
4
|
+
require "bundler"
|
11
5
|
|
12
6
|
require "pathname"
|
13
7
|
require "pry"
|
8
|
+
require "hashie"
|
14
9
|
require "commander/import"
|
15
10
|
require 'datapimp'
|
16
11
|
require 'datapimp/cli'
|
@@ -32,6 +32,10 @@ module Datapimp
|
|
32
32
|
google_access_token: ''
|
33
33
|
}
|
34
34
|
|
35
|
+
def current(using_environment = true)
|
36
|
+
@current ||= calculate_config(using_environment)
|
37
|
+
end
|
38
|
+
|
35
39
|
def self.method_missing(meth, *args, &block)
|
36
40
|
if instance.respond_to?(meth)
|
37
41
|
return instance.send meth, *args, &block
|
@@ -123,13 +127,14 @@ module Datapimp
|
|
123
127
|
DefaultSettings.dup
|
124
128
|
end
|
125
129
|
|
126
|
-
def current(using_environment = true)
|
127
|
-
@current ||= calculate_config(using_environment)
|
128
|
-
end
|
129
|
-
|
130
130
|
def calculate_config(using_environment = true)
|
131
131
|
@current = defaults.merge(home_config.merge(cwd_config.merge(applied_config))).to_mash
|
132
132
|
|
133
|
+
if ENV['DATAPIMP_CONFIG_EXTRA'].to_s.length > 0
|
134
|
+
extra_config = Datapimp::Util.load_config_file(ENV['DATAPIMP_CONFIG_EXTRA'])
|
135
|
+
@current.merge!(extra_config) if extra_config.is_a?(Hash)
|
136
|
+
end
|
137
|
+
|
133
138
|
(defaults.keys + home_config.keys + cwd_config.keys).uniq.each do |key|
|
134
139
|
upper = key.to_s.upcase
|
135
140
|
if ENV[upper]
|
data/lib/datapimp/logging.rb
CHANGED
@@ -73,6 +73,7 @@ module Datapimp
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def run_push_action(options={})
|
76
|
+
require 'rack' unless defined?(::Rack)
|
76
77
|
entries = Dir[local_path.join('**/*')].map(&:to_pathname)
|
77
78
|
prepare_manifest_for(entries)
|
78
79
|
|
@@ -90,19 +91,22 @@ module Datapimp
|
|
90
91
|
next
|
91
92
|
end
|
92
93
|
|
94
|
+
content_type = Rack::Mime.mime_type(File.extname(destination.split("/").last))
|
95
|
+
|
93
96
|
if existing = s3.files.get(destination)
|
94
97
|
if existing.etag == fingerprint
|
95
98
|
log "Skipping #{ destination }: similar etag"
|
96
99
|
else
|
97
100
|
existing.body = entry.read
|
98
101
|
existing.acl = 'public-read'
|
99
|
-
|
102
|
+
existing.content_type = content_type
|
103
|
+
log "Updated #{ destination }; content-type: #{ content_type }"
|
100
104
|
uploaded << destination
|
101
105
|
existing.save
|
102
106
|
end
|
103
107
|
else
|
104
|
-
log "Uploaded #{ destination }"
|
105
|
-
s3.files.create(key: destination, body: entry.read, acl: 'public-read')
|
108
|
+
log "Uploaded #{ destination }; content-type: #{ content_type }"
|
109
|
+
s3.files.create(key: destination, body: entry.read, acl: 'public-read', content_type: content_type)
|
106
110
|
uploaded << destination
|
107
111
|
end
|
108
112
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Datapimp
|
2
|
+
module Util
|
3
|
+
def self.load_config_file(at_path)
|
4
|
+
at_path = Pathname(at_path)
|
5
|
+
extension = at_path.extname.to_s.downcase
|
6
|
+
|
7
|
+
raise 'No config file exists at: ' + at_path.to_s unless at_path.exist?
|
8
|
+
|
9
|
+
if extension == '.yml' || extension == '.yaml'
|
10
|
+
YAML.load_file(at_path)
|
11
|
+
elsif extension == '.json'
|
12
|
+
JSON.parse(at_path.read)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/datapimp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datapimp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Soeder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -409,6 +409,7 @@ files:
|
|
409
409
|
- lib/datapimp/sync/dropbox_folder.rb
|
410
410
|
- lib/datapimp/sync/google_drive_folder.rb
|
411
411
|
- lib/datapimp/sync/s3_bucket.rb
|
412
|
+
- lib/datapimp/util.rb
|
412
413
|
- lib/datapimp/version.rb
|
413
414
|
- packaging/wrapper.sh
|
414
415
|
- spec/spec_helper.rb
|
@@ -444,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
444
445
|
version: '0'
|
445
446
|
requirements: []
|
446
447
|
rubyforge_project:
|
447
|
-
rubygems_version: 2.
|
448
|
+
rubygems_version: 2.4.5
|
448
449
|
signing_key:
|
449
450
|
specification_version: 4
|
450
451
|
summary: A collection of API development patterns that I have accumulated in my career
|
@@ -452,3 +453,4 @@ summary: A collection of API development patterns that I have accumulated in my
|
|
452
453
|
test_files:
|
453
454
|
- spec/spec_helper.rb
|
454
455
|
- spec/support/test_helpers.rb
|
456
|
+
has_rdoc:
|