nib 1.4.2 → 1.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/VERSION +1 -1
- data/lib/nib.rb +3 -5
- data/lib/nib/code_climate.rb +8 -19
- data/lib/nib/command.rb +3 -0
- data/lib/nib/history.rb +27 -39
- data/lib/nib/history/compose.rb +95 -0
- data/lib/nib/history/config.rb +35 -0
- data/lib/nib/run.rb +2 -0
- data/lib/nib/shell.rb +8 -11
- metadata +6 -5
- data/config/commands/codeclimate/docker-compose.yml +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebb0995546ce3958ff2a7421e5104fbe8c0ff2c4
|
4
|
+
data.tar.gz: 3dcef7fb5d744a7ce6c3cb7c21dfd5032b4c4b99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9de1a488e77c341eb655c447ef65c95563a2bf63c24d6908e60a040e6dd295af78086be0d094b1dfbf1bde60633f981209f544a2bb9e768532e14caad58e593e
|
7
|
+
data.tar.gz: 3d335688fe79b27a8bc345a1aecfb07736fe0a7426556cb781ed3903f3cbf55891b2e3b4af5d1dd89a483546193af73fc6b74248ef43213582eb066fc1fe0d73
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/lib/nib.rb
CHANGED
@@ -8,6 +8,8 @@ require 'nib/options/parser'
|
|
8
8
|
|
9
9
|
require 'nib/command'
|
10
10
|
require 'nib/history'
|
11
|
+
require 'nib/history/compose'
|
12
|
+
require 'nib/history/config'
|
11
13
|
require 'nib/check_for_update'
|
12
14
|
require 'nib/unrecognized_help'
|
13
15
|
require 'nib/code_climate'
|
@@ -24,11 +26,7 @@ module Nib
|
|
24
26
|
|
25
27
|
module_function
|
26
28
|
|
27
|
-
def load_config(command, file_name)
|
28
|
-
File.read("#{GEM_ROOT}/config/commands/#{command}/#{file_name}")
|
29
|
-
end
|
30
|
-
|
31
29
|
def load_default_config(command, file_name)
|
32
|
-
|
30
|
+
File.read("#{GEM_ROOT}/config/commands/#{command}/#{file_name}")
|
33
31
|
end
|
34
32
|
end
|
data/lib/nib/code_climate.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'tempfile'
|
2
|
-
|
3
1
|
class Nib::CodeClimate
|
4
2
|
include Nib::Command
|
5
3
|
|
@@ -12,24 +10,15 @@ class Nib::CodeClimate
|
|
12
10
|
|
13
11
|
def script
|
14
12
|
@script ||= <<-SCRIPT
|
15
|
-
docker
|
16
|
-
|
17
|
-
|
13
|
+
docker run \
|
14
|
+
--interactive \
|
15
|
+
--tty \
|
18
16
|
--rm \
|
19
|
-
|
20
|
-
|
17
|
+
--env CODECLIMATE_CODE="$PWD" \
|
18
|
+
--volume "$PWD":/code \
|
19
|
+
--volume /var/run/docker.sock:/var/run/docker.sock \
|
20
|
+
--volume /tmp/cc:/tmp/cc \
|
21
|
+
codeclimate/codeclimate #{command || 'help'}
|
21
22
|
SCRIPT
|
22
23
|
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def config
|
27
|
-
@config ||= Nib.load_config(:codeclimate, 'docker-compose.yml')
|
28
|
-
end
|
29
|
-
|
30
|
-
def compose_file
|
31
|
-
@compose_file ||= Tempfile.open('compose') do |file|
|
32
|
-
file.tap { |f| f.write(config) }
|
33
|
-
end
|
34
|
-
end
|
35
24
|
end
|
data/lib/nib/command.rb
CHANGED
@@ -26,6 +26,7 @@ module Nib::Command
|
|
26
26
|
def script
|
27
27
|
@script ||= <<-SCRIPT
|
28
28
|
docker-compose \
|
29
|
+
#{alternate_compose_file} \
|
29
30
|
run \
|
30
31
|
--rm \
|
31
32
|
#{options} \
|
@@ -33,4 +34,6 @@ module Nib::Command
|
|
33
34
|
#{command}
|
34
35
|
SCRIPT
|
35
36
|
end
|
37
|
+
|
38
|
+
def alternate_compose_file; end
|
36
39
|
end
|
data/lib/nib/history.rb
CHANGED
@@ -1,10 +1,28 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
1
|
module Nib::History
|
2
|
+
PATH = '/usr/local/history'.freeze
|
3
|
+
|
4
|
+
def self.prepended(base)
|
5
|
+
base.instance_eval do
|
6
|
+
extend ClassMethods
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def history_requires_command(value)
|
12
|
+
@history_requires_command = value
|
13
|
+
end
|
14
|
+
|
15
|
+
def history_requires_command?
|
16
|
+
@history_requires_command
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
4
20
|
def command
|
21
|
+
return if self.class.history_requires_command? && @command.to_s.empty?
|
22
|
+
|
5
23
|
<<-COMMAND
|
6
24
|
/bin/sh -c \"
|
7
|
-
export HISTFILE
|
25
|
+
export HISTFILE=#{PATH}/shell_history
|
8
26
|
cp #{irbrc.container_path} /root/.irbrc 2>/dev/null
|
9
27
|
cp #{pryrc.container_path} /root/.pryrc 2>/dev/null
|
10
28
|
#{super}
|
@@ -12,51 +30,21 @@ module Nib::History
|
|
12
30
|
COMMAND
|
13
31
|
end
|
14
32
|
|
33
|
+
def alternate_compose_file
|
34
|
+
"-f #{Compose.new.path}"
|
35
|
+
end
|
36
|
+
|
15
37
|
def irbrc
|
16
38
|
@irbrc ||= Config.new(
|
17
39
|
:irbrc,
|
18
|
-
|
40
|
+
"IRB.conf[:HISTORY_FILE] = '#{PATH}/irb_history'"
|
19
41
|
)
|
20
42
|
end
|
21
43
|
|
22
44
|
def pryrc
|
23
45
|
@pryrc ||= Config.new(
|
24
46
|
:pryrc,
|
25
|
-
|
47
|
+
"Pry.config.history.file = '#{PATH}/irb_history'"
|
26
48
|
)
|
27
49
|
end
|
28
|
-
|
29
|
-
class Config
|
30
|
-
attr_reader :type, :history_command, :host_path
|
31
|
-
|
32
|
-
def initialize(type, history_command)
|
33
|
-
@type = type
|
34
|
-
@history_command = history_command
|
35
|
-
@host_path = "#{ENV['HOME']}/.#{type}"
|
36
|
-
|
37
|
-
FileUtils.mkdir_p './tmp'
|
38
|
-
end
|
39
|
-
|
40
|
-
def container_path
|
41
|
-
config_file.path
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
|
46
|
-
def config
|
47
|
-
if File.exist?(host_path)
|
48
|
-
File.read(host_path)
|
49
|
-
else
|
50
|
-
Nib.load_default_config(:shell, type)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def config_file
|
55
|
-
@config_file ||= File.open("./tmp/#{type}", 'w+') do |file|
|
56
|
-
file.write(config)
|
57
|
-
file.write(history_command + "\n")
|
58
|
-
file
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
50
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
require 'tmpdir'
|
3
|
+
|
4
|
+
class Nib::History::Compose
|
5
|
+
attr_reader :dir, :volume_name
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@volume_name = 'nib_history'
|
9
|
+
@dir = "#{Dir.tmpdir}/#{Dir.pwd.split('/').last}"
|
10
|
+
|
11
|
+
FileUtils.mkdir_p(dir)
|
12
|
+
end
|
13
|
+
|
14
|
+
def path
|
15
|
+
file.path
|
16
|
+
end
|
17
|
+
|
18
|
+
def config
|
19
|
+
original_config
|
20
|
+
.merge('services' => services_config)
|
21
|
+
.merge('volumes' => volumes_config)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def original_config
|
27
|
+
@original_config ||= YAML.safe_load(`docker-compose config`)
|
28
|
+
end
|
29
|
+
|
30
|
+
def file
|
31
|
+
@file ||= Tempfile.open('compose', dir) do |compose|
|
32
|
+
compose.write(config.to_yaml)
|
33
|
+
compose
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def services_config
|
38
|
+
Services.new(volume_name, original_config['services']).config
|
39
|
+
end
|
40
|
+
|
41
|
+
def volumes_config
|
42
|
+
Volumes.new(volume_name, original_config['volumes']).config
|
43
|
+
end
|
44
|
+
|
45
|
+
class Services
|
46
|
+
attr_reader :original_config, :volume_name
|
47
|
+
|
48
|
+
def initialize(volume_name, original_config)
|
49
|
+
@original_config = original_config
|
50
|
+
@volume_name = volume_name
|
51
|
+
end
|
52
|
+
|
53
|
+
def config
|
54
|
+
original_config.each_with_object({}) do |(name, definition), extended|
|
55
|
+
extended[name] = Service.new(volume_name, definition).config
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
class Service
|
61
|
+
attr_reader :original_config, :volume_name
|
62
|
+
|
63
|
+
def initialize(volume_name, original_config)
|
64
|
+
@original_config = original_config
|
65
|
+
@volume_name = volume_name
|
66
|
+
end
|
67
|
+
|
68
|
+
def config
|
69
|
+
original_config.merge('volumes' => volumes_config << history_config)
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def volumes_config
|
75
|
+
original_config['volumes'] || []
|
76
|
+
end
|
77
|
+
|
78
|
+
def history_config
|
79
|
+
"#{volume_name}:#{Nib::History::PATH}"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
class Volumes
|
84
|
+
attr_reader :original_config, :volume_name
|
85
|
+
|
86
|
+
def initialize(volume_name, original_config = nil)
|
87
|
+
@original_config = original_config || {}
|
88
|
+
@volume_name = volume_name
|
89
|
+
end
|
90
|
+
|
91
|
+
def config
|
92
|
+
original_config.merge(volume_name => nil)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
class Nib::History::Config
|
4
|
+
attr_reader :type, :history_command, :host_path
|
5
|
+
|
6
|
+
def initialize(type, history_command)
|
7
|
+
@type = type
|
8
|
+
@history_command = history_command
|
9
|
+
@host_path = "#{ENV['HOME']}/.#{type}"
|
10
|
+
|
11
|
+
FileUtils.mkdir_p './tmp'
|
12
|
+
end
|
13
|
+
|
14
|
+
def container_path
|
15
|
+
config_file.path
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def config
|
21
|
+
if File.exist?(host_path)
|
22
|
+
File.read(host_path)
|
23
|
+
else
|
24
|
+
Nib.load_default_config(:shell, type)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def config_file
|
29
|
+
@config_file ||= File.open("./tmp/#{type}", 'w+') do |file|
|
30
|
+
file.write(config)
|
31
|
+
file.write(history_command + "\n")
|
32
|
+
file
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/nib/run.rb
CHANGED
data/lib/nib/shell.rb
CHANGED
@@ -2,19 +2,16 @@ class Nib::Shell
|
|
2
2
|
include Nib::Command
|
3
3
|
prepend Nib::History
|
4
4
|
|
5
|
-
SCRIPT = <<-SH.freeze
|
6
|
-
if hash bash 2>/dev/null ; then
|
7
|
-
bash
|
8
|
-
elif hash ash 2>/dev/null ; then
|
9
|
-
ash
|
10
|
-
else
|
11
|
-
sh
|
12
|
-
fi
|
13
|
-
SH
|
14
|
-
|
15
5
|
private
|
16
6
|
|
17
7
|
def command
|
18
|
-
|
8
|
+
conditions = %i(zsh bash ash).map do |shell|
|
9
|
+
"elif hash #{shell} 2>/dev/null ; then #{shell};"
|
10
|
+
end
|
11
|
+
|
12
|
+
conditions # default conditions
|
13
|
+
.unshift('if [ -f bin/shell ]; then bin/shell;') # prepend bin/shell
|
14
|
+
.push('else sh; fi') # add else clause (`sh`)
|
15
|
+
.join("\n")
|
19
16
|
end
|
20
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Allen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-03-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gli
|
@@ -129,14 +129,14 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 1.0.
|
132
|
+
version: 1.0.6
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 1.0.
|
139
|
+
version: 1.0.6
|
140
140
|
description: |2
|
141
141
|
nib is a docker-compose wrapper geared towards Ruby/Rails development.
|
142
142
|
email:
|
@@ -149,7 +149,6 @@ files:
|
|
149
149
|
- VERSION
|
150
150
|
- bin/nib
|
151
151
|
- config/commands.json
|
152
|
-
- config/commands/codeclimate/docker-compose.yml
|
153
152
|
- config/commands/shell/irbrc
|
154
153
|
- config/commands/shell/pryrc
|
155
154
|
- config/options.yml
|
@@ -162,6 +161,8 @@ files:
|
|
162
161
|
- lib/nib/debug.rb
|
163
162
|
- lib/nib/exec.rb
|
164
163
|
- lib/nib/history.rb
|
164
|
+
- lib/nib/history/compose.rb
|
165
|
+
- lib/nib/history/config.rb
|
165
166
|
- lib/nib/options.rb
|
166
167
|
- lib/nib/options/augmenter.rb
|
167
168
|
- lib/nib/options/parser.rb
|