rtprov 0.1.0 → 0.1.1
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/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/lib/rtprov/session.rb +9 -9
- data/lib/rtprov/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a42f3a6c37f9233c1e1fdd92873969d5ed678d6ad27fdfc4fdff77af6227febc
|
4
|
+
data.tar.gz: 62605c2099496b32f52fdc46252eb0e520db43aaf9406417ee0946306fe315d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba354ca8fd48fcedfc6b07ff496843c1c8f23db8d6828cdfb4cc330d4912f2c6bd449986e461ec9d3a56b6cf4982e7625fa7609e7fc7b3ce234355164be7be63
|
7
|
+
data.tar.gz: 29dd3afde18056a78e1ce1e9d81896e538ace1b4b604664ac6f67846b62fe91968d05bb9d62db9e3b02665bad115b0757944368642c764b0703d6def1ca60c6b
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/rtprov/session.rb
CHANGED
@@ -4,7 +4,7 @@ require "shellwords"
|
|
4
4
|
|
5
5
|
module Rtprov
|
6
6
|
class Session
|
7
|
-
attr_reader :router, :reader, :writer, :
|
7
|
+
attr_reader :router, :reader, :writer, :prompt_prefix, :prompt_pattern
|
8
8
|
|
9
9
|
def self.start(router, &block)
|
10
10
|
cmd = [
|
@@ -17,9 +17,9 @@ module Rtprov
|
|
17
17
|
|
18
18
|
r.expect(/password/)
|
19
19
|
w.puts router.password
|
20
|
-
|
20
|
+
prompt_prefix = r.expect(/^(.*)> /)[1]
|
21
21
|
|
22
|
-
session = new(router, r, w,
|
22
|
+
session = new(router, r, w, prompt_prefix, ">")
|
23
23
|
session.exec("console character en.ascii")
|
24
24
|
session.exec("console lines infinity") # disable pager
|
25
25
|
session.exec("console columns 200")
|
@@ -30,12 +30,12 @@ module Rtprov
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def initialize(router, reader, writer,
|
33
|
+
def initialize(router, reader, writer, prompt_prefix, prompt_suffix)
|
34
34
|
@router = router
|
35
35
|
@reader = reader
|
36
36
|
@writer = writer
|
37
|
-
@
|
38
|
-
@prompt_pattern = Regexp.compile("^" + Regexp.escape(
|
37
|
+
@prompt_prefix = prompt_prefix.dup.freeze
|
38
|
+
@prompt_pattern = Regexp.compile("^" + Regexp.escape(prompt_prefix) + "[a-z1-9]*" + prompt_suffix + " ").freeze
|
39
39
|
end
|
40
40
|
|
41
41
|
def exec(cmd)
|
@@ -58,7 +58,7 @@ module Rtprov
|
|
58
58
|
reader.expect(/^Administrator Password: /)
|
59
59
|
writer.puts router.administrator_password
|
60
60
|
|
61
|
-
writer.puts "console prompt '#{
|
61
|
+
writer.puts "console prompt '#{prompt_prefix}'" # load config may change prompt prefix
|
62
62
|
out, * = reader.expect(prompt_pattern)
|
63
63
|
|
64
64
|
unless out
|
@@ -76,11 +76,11 @@ module Rtprov
|
|
76
76
|
|
77
77
|
begin
|
78
78
|
# set new prompt because default administrator prompt "# " matches config file comment etc.
|
79
|
-
session = self.class.new(router, reader, writer, "RTPROV#")
|
79
|
+
session = self.class.new(router, reader, writer, "RTPROV", "#")
|
80
80
|
session.exec "console prompt RTPROV"
|
81
81
|
block.call(session)
|
82
82
|
ensure
|
83
|
-
writer.puts "console prompt '#{
|
83
|
+
writer.puts "console prompt '#{prompt_prefix}'"
|
84
84
|
reader.expect(/^.*# /)
|
85
85
|
end
|
86
86
|
|
data/lib/rtprov/version.rb
CHANGED