mongogems 0.0.6 → 0.0.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/bin/mg +69 -0
- data/lib/config.rb +31 -0
- data/lib/indexes.rb +1 -12
- data/lib/savedPipeline.rb +2 -4
- metadata +33 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6b110efba52c4efdfb689e7af26b0e97870e13ac53c03624649c4f4b8f3c7a2
|
4
|
+
data.tar.gz: eec7fa33083d44430f3f9b2d4934ba1bea15ba714284fb07b58c3852dbb24a59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d93488d894bc85eb43b3713b98b00a8d13cc448c60649ecad754efab53c61ccbc99534d1b77da74de3e1a36b3c79e70ef24b0bef15c36585724cbef798df180
|
7
|
+
data.tar.gz: 2a26b5a049cba6a60519d8045dae7edba880308a236eec7405fee626544008f466c17b152cfc4be51f6d913c27739f922e3de97b10fc78db85e714f74dad7455
|
data/bin/mg
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'optparse'
|
3
|
+
require_relative '../lib/config'
|
4
|
+
require 'shellwords'
|
5
|
+
|
6
|
+
options = {}
|
7
|
+
|
8
|
+
case ARGV.shift
|
9
|
+
when 'config'
|
10
|
+
options[:cmd] = 'config'
|
11
|
+
case ARGV.shift
|
12
|
+
when 'set'
|
13
|
+
options[:subcmd] = 'set'
|
14
|
+
key = ARGV.shift
|
15
|
+
value = ARGV.join ' '
|
16
|
+
options[:key] = key
|
17
|
+
options[:val] = value
|
18
|
+
|
19
|
+
write_config_entry options[:key], options[:val]
|
20
|
+
when 'get'
|
21
|
+
options[:subcmd] = 'get'
|
22
|
+
key = ARGV.shift
|
23
|
+
options[:key] = key
|
24
|
+
|
25
|
+
val = read_config_entry options[:key]
|
26
|
+
puts "Config for #{options[:key]} is #{val}"
|
27
|
+
when 'help'
|
28
|
+
puts '
|
29
|
+
Usage: mg config [subcommand] ...
|
30
|
+
Commands:
|
31
|
+
get KEY
|
32
|
+
set KEY VALUE
|
33
|
+
'
|
34
|
+
exit
|
35
|
+
else
|
36
|
+
puts "Unrecognized #{options[:cmd]} command"
|
37
|
+
exit -1
|
38
|
+
end
|
39
|
+
when 'help', '--help', '-h', '-?'
|
40
|
+
puts '
|
41
|
+
Usage: mg [command] [subcommand] ...
|
42
|
+
Commands:
|
43
|
+
config
|
44
|
+
help
|
45
|
+
'
|
46
|
+
exit
|
47
|
+
when 'shell', 's'
|
48
|
+
options[:cmd] = 'shell'
|
49
|
+
m_uri = read_config_entry 'uri'
|
50
|
+
if m_uri.nil?
|
51
|
+
puts 'URI not found in config.
|
52
|
+
Must set URI with: mg config set uri YOUR_URI_HERE
|
53
|
+
Example: mg config set uri \'mongodb://username:password@localhost:27017\'
|
54
|
+
'
|
55
|
+
exit
|
56
|
+
end
|
57
|
+
remaining_cmds = ARGV.map{|arg| Shellwords.escape arg}.join ' '
|
58
|
+
cmdstr = "mongo #{m_uri} #{remaining_cmds}"
|
59
|
+
exec(cmdstr)
|
60
|
+
# when 'echo'
|
61
|
+
# remaining_cmds = ARGV.map{|arg| Shellwords.escape arg}.join ' '
|
62
|
+
# puts remaining_cmds
|
63
|
+
# exec("echo #{remaining_cmds}")
|
64
|
+
else
|
65
|
+
puts 'Unrecognized command'
|
66
|
+
exit -1
|
67
|
+
end
|
68
|
+
|
69
|
+
|
data/lib/config.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
$config_filename = File.join(Dir.home, '.mongogems')
|
4
|
+
$has_config = lambda { File.exists? $config_filename }
|
5
|
+
|
6
|
+
# Write a key-value pair to the config file
|
7
|
+
def write_config_entry(key, value)
|
8
|
+
if $has_config.call then
|
9
|
+
curr_config = YAML.load(File.read($config_filename))
|
10
|
+
else
|
11
|
+
curr_config = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
curr_config[key] = value
|
15
|
+
|
16
|
+
File.open($config_filename, 'w') { |f| f.write(curr_config.to_yaml) }
|
17
|
+
end
|
18
|
+
|
19
|
+
# Reads a key-value pair from the config file
|
20
|
+
def read_config_entry(key)
|
21
|
+
if $has_config.call then
|
22
|
+
curr_config = YAML.load(File.read($config_filename))
|
23
|
+
else
|
24
|
+
return nil
|
25
|
+
end
|
26
|
+
|
27
|
+
curr_config[key]
|
28
|
+
end
|
29
|
+
|
30
|
+
# write_config_entry 'mongouri', 'mongodb://localhost'
|
31
|
+
# p (read_config_entry 'mongouri')
|
data/lib/indexes.rb
CHANGED
@@ -4,7 +4,6 @@ require 'json'
|
|
4
4
|
def get_indexes_script(uri, db_name=nil, coll_name=nil, outfile)
|
5
5
|
client = Mongo::Client.new(uri)
|
6
6
|
|
7
|
-
|
8
7
|
db_list = []
|
9
8
|
if not db_name.nil?
|
10
9
|
db_list.push db_name
|
@@ -15,18 +14,11 @@ def get_indexes_script(uri, db_name=nil, coll_name=nil, outfile)
|
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
18
|
-
# client = client.use 'test'
|
19
|
-
|
20
|
-
# cur = client.command listCollections: 1
|
21
|
-
# rset = cur.to_a
|
22
|
-
# rset = rset.first['cursor']['firstBatch']
|
23
|
-
# rset
|
24
|
-
|
25
17
|
scripts = []
|
26
18
|
|
27
19
|
db_list.each do |iter_db|
|
28
20
|
client = client.use iter_db
|
29
|
-
scripts.push "
|
21
|
+
scripts.push "db = db.getSiblingDB('#{iter_db}')';"
|
30
22
|
if coll_name.nil?
|
31
23
|
colls = client.collections
|
32
24
|
else
|
@@ -70,6 +62,3 @@ def gen_idx_script(idIndex, collname)
|
|
70
62
|
opt_spec = JSON.dump idx_options
|
71
63
|
txt = "db.#{collname}.createIndex(#{idx_spec}, #{opt_spec});"
|
72
64
|
end
|
73
|
-
|
74
|
-
# mdb_uri = 'mongodb://localhost'
|
75
|
-
# get_indexes_script mdb_uri, nil, nil, 'idx_out.txt'
|
data/lib/savedPipeline.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
require 'json'
|
2
|
-
# require 'hjson'
|
3
2
|
|
4
|
-
# filename = '/Users/nitin/Downloads/Zaloni-DQ-A/607d7460cb21963a143d1d0f.json'
|
5
3
|
|
4
|
+
# Exports the pipeline to a .aggregate() Mongo shell script
|
6
5
|
def pipeline_to_mongosh_script(infile, outfile)
|
7
6
|
txt = File.read(infile)
|
8
7
|
data = JSON.parse(txt)
|
@@ -42,6 +41,7 @@ db.getSiblingDB('#{dbname}').#{collname}.aggregate(
|
|
42
41
|
end
|
43
42
|
|
44
43
|
|
44
|
+
# Exports the pipeline to a createView Mongo shell script
|
45
45
|
def pipeline_to_view_mongosh_script(infile, viewname, outfile)
|
46
46
|
txt = File.read(infile)
|
47
47
|
data = JSON.parse(txt)
|
@@ -78,5 +78,3 @@ db.getSiblingDB('#{dbname}').createView('#{viewname}', '#{collname}',
|
|
78
78
|
|
79
79
|
File.write(outfile, mongosh_script_out)
|
80
80
|
end
|
81
|
-
|
82
|
-
# pipeline_to_mongosh_script filename, '/dev/null'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongogems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katkam Nitin Reddy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mongo
|
@@ -24,18 +24,49 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.14.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: os
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: shellwords
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.1.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.1.0
|
27
55
|
description:
|
28
56
|
email:
|
29
57
|
executables:
|
30
58
|
- compass2mongosh
|
31
59
|
- mongolog2file
|
32
60
|
- mongoindex2file
|
61
|
+
- mg
|
33
62
|
extensions: []
|
34
63
|
extra_rdoc_files: []
|
35
64
|
files:
|
36
65
|
- bin/compass2mongosh
|
66
|
+
- bin/mg
|
37
67
|
- bin/mongoindex2file
|
38
68
|
- bin/mongolog2file
|
69
|
+
- lib/config.rb
|
39
70
|
- lib/indexes.rb
|
40
71
|
- lib/logs.rb
|
41
72
|
- lib/savedPipeline.rb
|