dynamodb-ruby 0.4.0 → 0.5.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/dynamodb-ruby.gemspec +1 -0
- data/exe/dynamodb +4 -0
- data/lib/dynamodb.rb +1 -1
- data/lib/dynamodb/cli.rb +121 -0
- data/lib/dynamodb/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c257312be4a3b3beb1872f2dbd95b302cc07a5e4
|
4
|
+
data.tar.gz: e6ae659246529009d91a8b53df17b557d0e4c628
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cd1c9e747783f8cad8b6c53df6281b8fabc1ded9641ec7504a41fc5c2c2a7002f7ce27800c6c62fee753ed1c0f24ffba3ac5df97bc19dfe840808df00bcacd0
|
7
|
+
data.tar.gz: af53e9164e0d03f08eec079229378e534cce3ad09d4b7a3726e5ce2c6b1151c2f226ca922e492c532224ced578767dcc588917c1646eddc618309c190bf22ce8
|
data/dynamodb-ruby.gemspec
CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
|
33
33
|
spec.add_dependency "activesupport", "~> 5.0"
|
34
34
|
spec.add_dependency "aws-sdk-dynamodb", "~> 1"
|
35
|
+
spec.add_dependency "thor"
|
35
36
|
|
36
37
|
spec.add_development_dependency "bundler", "~> 1.15"
|
37
38
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/exe/dynamodb
ADDED
data/lib/dynamodb.rb
CHANGED
data/lib/dynamodb/cli.rb
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
module Dynamodb
|
4
|
+
class CLI < Thor
|
5
|
+
DIST_DIR = "vendor/DynamoDBLocal-latest"
|
6
|
+
PIDFILE = "dynamodb.pid"
|
7
|
+
PORT = 8000
|
8
|
+
LOG_DIR = "logs"
|
9
|
+
|
10
|
+
desc "start", "Starts Dynamodb Local"
|
11
|
+
method_option :dist_dir, aliases: "-dd"
|
12
|
+
method_option :pidfile, aliases: "-pf"
|
13
|
+
method_option :port, aliases: "-p"
|
14
|
+
method_option :log_dir, aliases: "-ld"
|
15
|
+
def start
|
16
|
+
%x(
|
17
|
+
if [ -z $JAVA_HOME ]; then
|
18
|
+
echo >&2 'ERROR: DynamoDBLocal requires JAVA_HOME to be set.'
|
19
|
+
fi
|
20
|
+
)
|
21
|
+
|
22
|
+
%x(
|
23
|
+
if [ ! -x $JAVA_HOME/bin/java ]; then
|
24
|
+
echo >&2 'ERROR: JAVA_HOME is set, but I do not see the java executable there.'
|
25
|
+
exit 1
|
26
|
+
fi
|
27
|
+
)
|
28
|
+
|
29
|
+
dist_dir = options[:dist_dir] || DIST_DIR
|
30
|
+
`cd #{dist_dir}`
|
31
|
+
|
32
|
+
%x(
|
33
|
+
if [ ! -f DynamoDBLocal.jar ] || [ ! -d DynamoDBLocal_lib ]; then
|
34
|
+
echo >&2 "ERROR: Could not find DynamoDBLocal files in #{dist_dir}."
|
35
|
+
exit 1
|
36
|
+
fi
|
37
|
+
)
|
38
|
+
|
39
|
+
log_dir = options[:log_dir] || LOG_DIR
|
40
|
+
`mkdir -p #{log_dir}`
|
41
|
+
|
42
|
+
puts "DynamoDB Local output will save to #{dist_dir}/#{log_dir}/"
|
43
|
+
|
44
|
+
port = options[:port] || PORT
|
45
|
+
`hash lsof 2>/dev/null && lsof -i :#{port} && { echo >&2 "Something is already listening on port #{port}; I will not attempt to start DynamoDBLocal."; exit 1; }`
|
46
|
+
|
47
|
+
`nohup $JAVA_HOME/bin/java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -delayTransientStatuses -port #{port} -inMemory 1>"#{log_dir}/output.log" 2>"#{log_dir}/error.log" &`
|
48
|
+
`PID=$!`
|
49
|
+
|
50
|
+
puts "Verifying that DynamoDBLocal actually started..."
|
51
|
+
|
52
|
+
# Allow some seconds for the JDK to start and die.
|
53
|
+
%x(
|
54
|
+
counter=0
|
55
|
+
while [ $counter -le 5 ]; do
|
56
|
+
kill -0 $PID
|
57
|
+
if [ $? -ne 0 ]; then
|
58
|
+
echo >&2 'ERROR: DynamoDBLocal died after we tried to start it!'
|
59
|
+
exit 1
|
60
|
+
else
|
61
|
+
counter=$(($counter + 1))
|
62
|
+
sleep 1
|
63
|
+
fi
|
64
|
+
done
|
65
|
+
)
|
66
|
+
|
67
|
+
puts "DynamoDB Local started with pid #{`$PID`} listening on port #{port}."
|
68
|
+
|
69
|
+
pidfile = options[:pidfile] || PIDFILE
|
70
|
+
puts `$PID > #{pidfile}`
|
71
|
+
end
|
72
|
+
|
73
|
+
desc "stop", "Stops Dynamodb Local"
|
74
|
+
method_option :dist_dir, aliases: "-dd"
|
75
|
+
method_option :pidfile, aliases: "-pf"
|
76
|
+
method_option :port, aliases: "-p"
|
77
|
+
method_option :log_dir, aliases: "-ld"
|
78
|
+
def stop
|
79
|
+
dist_dir = options[:dist_dir] || DIST_DIR
|
80
|
+
`cd #{dist_dir}`
|
81
|
+
|
82
|
+
pidfile = options[:pidfile] || PIDFILE
|
83
|
+
%x(
|
84
|
+
if [ ! -f #{pidfile} ]; then
|
85
|
+
echo 'ERROR: There is no pidfile, below is the list of DynamoDBLocal processes you may need to kill.'
|
86
|
+
ps -e | grep DynamoDBLocal | grep -v grep
|
87
|
+
exit 1
|
88
|
+
fi
|
89
|
+
)
|
90
|
+
|
91
|
+
`pid=$(<#{pidfile})`
|
92
|
+
|
93
|
+
`echo "Killing DynamoDBLocal at pid $pid..."`
|
94
|
+
`kill $pid`
|
95
|
+
|
96
|
+
%x(
|
97
|
+
counter=0
|
98
|
+
while [ $counter -le 5 ]; do
|
99
|
+
kill -0 $pid 2>/dev/null
|
100
|
+
if [ $? -ne 0 ]; then
|
101
|
+
echo 'Successfully shut down DynamoDBLocal.'
|
102
|
+
rm -f #{pidfile}
|
103
|
+
exit 0
|
104
|
+
else
|
105
|
+
echo 'Still waiting for DynamoDBLocal to shut down...'
|
106
|
+
counter=$(($counter + 1))
|
107
|
+
sleep 1
|
108
|
+
fi
|
109
|
+
done
|
110
|
+
)
|
111
|
+
|
112
|
+
puts "Unable to shut down DynamoDBLocal; below is the list of DynamoDBLocal processes you may need to kill."
|
113
|
+
|
114
|
+
`ps -e | grep DynamoDBLocal | grep -v grep`
|
115
|
+
|
116
|
+
`rm -f #{pidfile}`
|
117
|
+
|
118
|
+
`exit 1`
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
data/lib/dynamodb/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamodb-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Farrow
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +112,8 @@ description: A small ORM wrapper to make working with AWS Dynamodb easier. Inclu
|
|
98
112
|
Test helpers.
|
99
113
|
email:
|
100
114
|
- sfarrow@bandsintown.com
|
101
|
-
executables:
|
115
|
+
executables:
|
116
|
+
- dynamodb
|
102
117
|
extensions: []
|
103
118
|
extra_rdoc_files: []
|
104
119
|
files:
|
@@ -114,9 +129,11 @@ files:
|
|
114
129
|
- bin/setup
|
115
130
|
- dynamodb-ruby-0.1.0.gem
|
116
131
|
- dynamodb-ruby.gemspec
|
132
|
+
- exe/dynamodb
|
117
133
|
- lib/dynamodb.rb
|
118
134
|
- lib/dynamodb/attribute_assignment.rb
|
119
135
|
- lib/dynamodb/base.rb
|
136
|
+
- lib/dynamodb/cli.rb
|
120
137
|
- lib/dynamodb/configuration.rb
|
121
138
|
- lib/dynamodb/connection.rb
|
122
139
|
- lib/dynamodb/local.rb
|