embulk 0.6.6 → 0.6.7
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/build.gradle +2 -2
- data/embulk-core/build.gradle +8 -8
- data/embulk-docs/src/release.rst +1 -0
- data/embulk-docs/src/release/release-0.6.7.rst +17 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +1 -1
- data/lib/embulk/command/embulk_run.rb +20 -2
- data/lib/embulk/command/embulk_selfupdate.rb +84 -0
- data/lib/embulk/guess/schema_guess.rb +7 -3
- data/lib/embulk/version.rb +1 -1
- metadata +14 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c812083e751a2593484a749af8ac7f0519cbe5f7
|
4
|
+
data.tar.gz: d7d74ec957f1cbb9951850199524a3e039be4640
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f727dfbf18ab2dc4e768b7ea132413c30fc63330a6aa3c0d5ffc4285623c7f03eaa66c177ed9c4c57d1232f59e582583cb2255c73d8f0a4045831f126f040de
|
7
|
+
data.tar.gz: a0218b10b993ad8cb09afc3fc7f94454da50410979e70a74375d2c3d739077e20ae16b27e0fb30d369137cc8c29b6bddaace9955746f66fcb3ae8c72c7a39e82
|
data/build.gradle
CHANGED
@@ -11,7 +11,7 @@ def release_projects = [project(":embulk-core"), project(":embulk-standards")]
|
|
11
11
|
|
12
12
|
allprojects {
|
13
13
|
group = 'org.embulk'
|
14
|
-
version = '0.6.
|
14
|
+
version = '0.6.7'
|
15
15
|
|
16
16
|
ext {
|
17
17
|
jrubyVersion = '1.7.19'
|
@@ -40,7 +40,7 @@ allprojects {
|
|
40
40
|
}
|
41
41
|
|
42
42
|
dryRun = false
|
43
|
-
publish =
|
43
|
+
publish = true
|
44
44
|
|
45
45
|
pkg {
|
46
46
|
userOrg = 'embulk'
|
data/embulk-core/build.gradle
CHANGED
@@ -15,15 +15,15 @@ configurations {
|
|
15
15
|
// determine which dependencies have updates: $ gradle dependencyUpdates
|
16
16
|
dependencies {
|
17
17
|
compile 'com.google.guava:guava:18.0'
|
18
|
-
compile 'com.google.inject:guice:
|
19
|
-
compile 'com.google.inject.extensions:guice-multibindings:
|
18
|
+
compile 'com.google.inject:guice:4.0'
|
19
|
+
compile 'com.google.inject.extensions:guice-multibindings:4.0'
|
20
20
|
compile 'javax.inject:javax.inject:1'
|
21
|
-
compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.
|
22
|
-
compile 'com.fasterxml.jackson.core:jackson-core:2.5.
|
23
|
-
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.
|
24
|
-
compile 'com.fasterxml.jackson.datatype:jackson-datatype-guava:2.5.
|
25
|
-
compile 'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.5.
|
26
|
-
compile 'com.fasterxml.jackson.module:jackson-module-guice:2.5.
|
21
|
+
compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.3'
|
22
|
+
compile 'com.fasterxml.jackson.core:jackson-core:2.5.3'
|
23
|
+
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3'
|
24
|
+
compile 'com.fasterxml.jackson.datatype:jackson-datatype-guava:2.5.3'
|
25
|
+
compile 'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.5.3'
|
26
|
+
compile 'com.fasterxml.jackson.module:jackson-module-guice:2.5.3'
|
27
27
|
compile 'log4j:log4j:1.2.17'
|
28
28
|
compile 'org.slf4j:slf4j-api:1.7.10'
|
29
29
|
compile 'org.slf4j:slf4j-log4j12:1.7.10'
|
data/embulk-docs/src/release.rst
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
Release 0.6.7
|
2
|
+
==================================
|
3
|
+
|
4
|
+
Built-in plugins
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* ``guess-csv`` guesses "t" and "f" as a boolean value.
|
8
|
+
|
9
|
+
General Changes
|
10
|
+
------------------
|
11
|
+
|
12
|
+
* Added ``selfupdate`` subcommand. This command updates embulk itself to the released latest version.
|
13
|
+
* Upgraded library dependency of Guice from 3.0 to 4.0.
|
14
|
+
|
15
|
+
Release Date
|
16
|
+
------------------
|
17
|
+
2015-05-06
|
@@ -173,6 +173,13 @@ examples:
|
|
173
173
|
]
|
174
174
|
args = 2..2
|
175
175
|
|
176
|
+
when :selfupdate
|
177
|
+
op.remove # remove --bundle
|
178
|
+
op.on('-f', "Skip corruption check", TrueClass) do |b|
|
179
|
+
options[:force] = true
|
180
|
+
end
|
181
|
+
args = 0..0
|
182
|
+
|
176
183
|
when :gem
|
177
184
|
require 'rubygems/gem_runner'
|
178
185
|
Gem::GemRunner.new.run argv
|
@@ -297,6 +304,10 @@ examples:
|
|
297
304
|
require 'embulk/command/embulk_new_plugin'
|
298
305
|
Embulk.new_plugin(name, language, category)
|
299
306
|
|
307
|
+
when :selfupdate
|
308
|
+
require 'embulk/command/embulk_selfupdate'
|
309
|
+
Embulk.selfupdate(options)
|
310
|
+
|
300
311
|
else
|
301
312
|
require 'json'
|
302
313
|
|
@@ -327,8 +338,14 @@ examples:
|
|
327
338
|
end
|
328
339
|
|
329
340
|
def self.home(dir)
|
330
|
-
|
331
|
-
|
341
|
+
jar, resource = __FILE__.split("!")
|
342
|
+
if resource
|
343
|
+
home = resource.split("/")[0..-3].join("/")
|
344
|
+
"#{jar}!#{home}/#{dir}"
|
345
|
+
else
|
346
|
+
home = File.expand_path('../../..', File.dirname(__FILE__))
|
347
|
+
File.join(home, dir)
|
348
|
+
end
|
332
349
|
end
|
333
350
|
|
334
351
|
def self.default_gem_home
|
@@ -395,6 +412,7 @@ examples:
|
|
395
412
|
STDERR.puts " # plugin path is #{ENV['GEM_HOME']}"
|
396
413
|
STDERR.puts " new <category> <name> # generates new plugin template"
|
397
414
|
STDERR.puts " example [path] # creates an example config file and csv file to try embulk."
|
415
|
+
STDERR.puts " selfupdate # upgrades embulk to the latest released version."
|
398
416
|
STDERR.puts ""
|
399
417
|
if message
|
400
418
|
STDERR.puts "error: #{message}"
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Embulk
|
2
|
+
def self.selfupdate(options={})
|
3
|
+
require 'uri'
|
4
|
+
|
5
|
+
jar, resource = __FILE__.split("!", 2)
|
6
|
+
jar_path = URI.parse(jar).path rescue jar
|
7
|
+
unless resource && File.file?(jar_path)
|
8
|
+
STDERR.puts ""
|
9
|
+
STDERR.puts "Embulk is not installed by a single jar. Selfupdate is not supported."
|
10
|
+
STDERR.puts "If you used gem to install embulk, please run: "
|
11
|
+
STDERR.puts ""
|
12
|
+
STDERR.puts " $ gem install embulk"
|
13
|
+
STDERR.puts ""
|
14
|
+
raise SystemExit.new(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
puts "Checking the latest version..."
|
18
|
+
latest_version = check_latest_version
|
19
|
+
|
20
|
+
if Gem::Version.new(latest_version) <= Gem::Version.new(Embulk::VERSION)
|
21
|
+
puts "Already up-to-date. #{latest_version} is the latest version."
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
puts "Found new version #{latest_version}."
|
26
|
+
|
27
|
+
unless File.writable?(jar_path)
|
28
|
+
STDERR.puts ""
|
29
|
+
STDERR.puts "Installation path #{jar_path} is not writable."
|
30
|
+
STDERR.puts "Dou you need to run with sudo?"
|
31
|
+
STDERR.puts ""
|
32
|
+
raise SystemExit.new(1)
|
33
|
+
end
|
34
|
+
|
35
|
+
url = "https://dl.bintray.com/embulk/maven/embulk-#{latest_version}.jar"
|
36
|
+
puts "Downloading #{url} ..."
|
37
|
+
|
38
|
+
require 'open-uri'
|
39
|
+
require 'tempfile'
|
40
|
+
Tempfile.open(["embulk-selfupdate", ".jar"]) do |tmp|
|
41
|
+
tmp.chmod(File.stat(jar_path).mode)
|
42
|
+
OpenURI.open_uri(url) do |f|
|
43
|
+
IO.copy_stream(f, tmp)
|
44
|
+
end
|
45
|
+
tmp.close(false)
|
46
|
+
|
47
|
+
# check corruption
|
48
|
+
unless options[:force]
|
49
|
+
begin
|
50
|
+
data = File.read("jar:#{java.io.File.new(tmp.path).toURI.toURL}!/embulk/version.rb")
|
51
|
+
m = Module.new
|
52
|
+
m.module_eval(data)
|
53
|
+
unless m::Embulk::VERSION == latest_version
|
54
|
+
raise "Embulk::VERSION does not match with #{latest_version}"
|
55
|
+
end
|
56
|
+
rescue => e
|
57
|
+
STDERR.puts "Corruption checking failed (#{e})."
|
58
|
+
STDERR.puts "This version might include incompatible changes."
|
59
|
+
STDERR.puts "Please add '-f' argument to selfupdate command to skip checking."
|
60
|
+
raise SystemExit.new(1, e.to_s)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File.rename(tmp.path, jar_path)
|
65
|
+
end
|
66
|
+
|
67
|
+
puts "Updated to #{latest_version}."
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.check_latest_version
|
71
|
+
require 'net/https'
|
72
|
+
bintray = Net::HTTP.new('bintray.com', 443)
|
73
|
+
bintray.use_ssl = true
|
74
|
+
bintray.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
75
|
+
bintray.start do
|
76
|
+
response = bintray.get('/embulk/maven/embulk/_latestVersion')
|
77
|
+
raise "Expected response code 302 Found but got #{response.code}" if response.code != "302"
|
78
|
+
location = response["Location"].to_s
|
79
|
+
m = /(\d+\.\d+[^\/]+)/.match(location)
|
80
|
+
raise "Cound not find version number in Location header '#{location}'" unless m
|
81
|
+
return m[1]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -64,13 +64,17 @@ module Embulk::Guess
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
+
if str.empty?
|
68
|
+
return nil
|
69
|
+
end
|
70
|
+
|
67
71
|
return "string"
|
68
72
|
end
|
69
73
|
|
70
74
|
def merge_types(types)
|
71
75
|
t = types.inject(nil) {|r,t| merge_type(r,t) } || "string"
|
72
76
|
if t.is_a?(TimestampTypeMatch)
|
73
|
-
format = TimeFormatGuess.guess(types.map {|type| type.format })
|
77
|
+
format = TimeFormatGuess.guess(types.map {|type| type.is_a?(TimestampTypeMatch) ? type.format : nil }.compact)
|
74
78
|
return TimestampTypeMatch.new(format)
|
75
79
|
else
|
76
80
|
return t
|
@@ -81,7 +85,7 @@ module Embulk::Guess
|
|
81
85
|
TRUE_STRINGS = Hash[%w[
|
82
86
|
true True TRUE
|
83
87
|
yes Yes YES
|
84
|
-
y Y
|
88
|
+
t T y Y
|
85
89
|
on On ON
|
86
90
|
1
|
87
91
|
].map {|k| [k, true] }]
|
@@ -90,7 +94,7 @@ module Embulk::Guess
|
|
90
94
|
FALSE_STRINGS = Hash[%w[
|
91
95
|
false False FALSE
|
92
96
|
no No NO
|
93
|
-
n N
|
97
|
+
f N n N
|
94
98
|
off Off OFF
|
95
99
|
0
|
96
100
|
].map {|k| [k, true] }]
|
data/lib/embulk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -296,6 +296,7 @@ files:
|
|
296
296
|
- embulk-docs/src/release/release-0.6.4.rst
|
297
297
|
- embulk-docs/src/release/release-0.6.5.rst
|
298
298
|
- embulk-docs/src/release/release-0.6.6.rst
|
299
|
+
- embulk-docs/src/release/release-0.6.7.rst
|
299
300
|
- embulk-standards/build.gradle
|
300
301
|
- embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java
|
301
302
|
- embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java
|
@@ -324,6 +325,7 @@ files:
|
|
324
325
|
- lib/embulk/command/embulk_generate_bin.rb
|
325
326
|
- lib/embulk/command/embulk_new_plugin.rb
|
326
327
|
- lib/embulk/command/embulk_run.rb
|
328
|
+
- lib/embulk/command/embulk_selfupdate.rb
|
327
329
|
- lib/embulk/data/bundle/.bundle/config
|
328
330
|
- lib/embulk/data/bundle/Gemfile
|
329
331
|
- lib/embulk/data/bundle/Gemfile.lock
|
@@ -401,18 +403,18 @@ files:
|
|
401
403
|
- classpath/bval-jsr303-0.5.jar
|
402
404
|
- classpath/commons-beanutils-core-1.8.3.jar
|
403
405
|
- classpath/commons-lang3-3.1.jar
|
404
|
-
- classpath/embulk-core-0.6.
|
405
|
-
- classpath/embulk-standards-0.6.
|
406
|
+
- classpath/embulk-core-0.6.7.jar
|
407
|
+
- classpath/embulk-standards-0.6.7.jar
|
406
408
|
- classpath/guava-18.0.jar
|
407
|
-
- classpath/guice-
|
408
|
-
- classpath/guice-multibindings-
|
409
|
+
- classpath/guice-4.0.jar
|
410
|
+
- classpath/guice-multibindings-4.0.jar
|
409
411
|
- classpath/icu4j-54.1.1.jar
|
410
|
-
- classpath/jackson-annotations-2.5.
|
411
|
-
- classpath/jackson-core-2.5.
|
412
|
-
- classpath/jackson-databind-2.5.
|
413
|
-
- classpath/jackson-datatype-guava-2.5.
|
414
|
-
- classpath/jackson-datatype-joda-2.5.
|
415
|
-
- classpath/jackson-module-guice-2.5.
|
412
|
+
- classpath/jackson-annotations-2.5.3.jar
|
413
|
+
- classpath/jackson-core-2.5.3.jar
|
414
|
+
- classpath/jackson-databind-2.5.3.jar
|
415
|
+
- classpath/jackson-datatype-guava-2.5.3.jar
|
416
|
+
- classpath/jackson-datatype-joda-2.5.3.jar
|
417
|
+
- classpath/jackson-module-guice-2.5.3.jar
|
416
418
|
- classpath/javax.inject-1.jar
|
417
419
|
- classpath/joda-time-2.7.jar
|
418
420
|
- classpath/jruby-complete-1.7.19.jar
|