rtprov 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a42f3a6c37f9233c1e1fdd92873969d5ed678d6ad27fdfc4fdff77af6227febc
4
- data.tar.gz: 62605c2099496b32f52fdc46252eb0e520db43aaf9406417ee0946306fe315d6
3
+ metadata.gz: b91fc8dc026c4cb7ce9b65a0fcfb0b547c5b793551e7a2e3bfbbbccfcbcbc31a
4
+ data.tar.gz: 0c92a75b0a93666eaf9a7efc8b05df13aee7a8e546fd210e27165c71cf1024a2
5
5
  SHA512:
6
- metadata.gz: ba354ca8fd48fcedfc6b07ff496843c1c8f23db8d6828cdfb4cc330d4912f2c6bd449986e461ec9d3a56b6cf4982e7625fa7609e7fc7b3ce234355164be7be63
7
- data.tar.gz: 29dd3afde18056a78e1ce1e9d81896e538ace1b4b604664ac6f67846b62fe91968d05bb9d62db9e3b02665bad115b0757944368642c764b0703d6def1ca60c6b
6
+ metadata.gz: f955b8416a6e65a23065de9f6dc051aa730ddd930faa920781ca55c940bb197953b747604a25b0156f6fb1c94c9b4683bce43588fd39e73878fca9a50eed9856
7
+ data.tar.gz: 9c4c2d9d73891671de07795d40ab3ae61b17785111a0242fef153fb347e9944bf61190b28412590a6921040b22bc2702042ea0c09f9d66aa3e6c00c1f2751e66
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v0.1.2
2
+
3
+ * add subcommands `print`, `diff`
4
+
1
5
  # v0.1.1
2
6
 
3
7
  * support prompt change like 'pp1>' by 'pp select 1'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rtprov (0.1.1)
4
+ rtprov (0.1.2)
5
5
  reversible_cryptography
6
6
  thor
7
7
 
@@ -14,7 +14,7 @@ GEM
14
14
  parser (2.6.3.0)
15
15
  ast (~> 2.4.0)
16
16
  rainbow (3.0.0)
17
- rake (10.5.0)
17
+ rake (13.0.1)
18
18
  reversible_cryptography (0.5.0)
19
19
  thor
20
20
  rubocop (0.74.0)
@@ -25,7 +25,7 @@ GEM
25
25
  ruby-progressbar (~> 1.7)
26
26
  unicode-display_width (>= 1.4.0, < 1.7)
27
27
  ruby-progressbar (1.10.1)
28
- thor (0.20.3)
28
+ thor (1.2.1)
29
29
  unicode-display_width (1.6.0)
30
30
 
31
31
  PLATFORMS
@@ -33,9 +33,9 @@ PLATFORMS
33
33
 
34
34
  DEPENDENCIES
35
35
  bundler (~> 2.0)
36
- rake (~> 10.0)
36
+ rake (~> 13.0)
37
37
  rtprov!
38
38
  rubocop (~> 0.74.0)
39
39
 
40
40
  BUNDLED WITH
41
- 2.0.1
41
+ 2.3.25
data/README.md CHANGED
@@ -80,6 +80,20 @@ rtprov uses `ENV["RTPROV_DIFF"]` or `colordiff` or `diff` to print diff.
80
80
  # Rendering templates/my_config.erb and put to my_route as config1 and load it.
81
81
  $ rtprov put my_router --number 1 my_config
82
82
 
83
+ Templates are ERB file. In template, define variables described in router file.
84
+ For example, in router file,
85
+
86
+ variables:
87
+ foo:
88
+ bar:
89
+ - baz: foobar
90
+
91
+ in template,
92
+
93
+ <%= foo.bar[0].baz >
94
+
95
+ you can get "foobar".
96
+
83
97
 
84
98
  ## Development
85
99
 
data/lib/rtprov/cli.rb CHANGED
@@ -26,6 +26,28 @@ module Rtprov
26
26
  puts sftp.get("/system/config#{options[:number]}")
27
27
  end
28
28
 
29
+ desc "diff ROUTER TEMPLATE", "Show config diff of current and new config"
30
+ option :number, type: :numeric, default: 0, aliases: :n, desc: "Configuration number"
31
+ def diff(router_name, template_name)
32
+ current_file = "/system/config#{options[:number]}"
33
+ router = Router.load(router_name)
34
+
35
+ template = Template.find(router_name, template_name)
36
+ new_config = template.render(router.variables)
37
+
38
+ sftp = Sftp.new(router.host, router.user, router.administrator_password)
39
+ current_config = sftp.get(current_file)
40
+ diff = ENV["RTPROV_DIFF"] || %w(colordiff diff).find {|cmd| system("which", cmd, out: "/dev/null", err: "/dev/null") }
41
+
42
+ Dir.mktmpdir do |dir|
43
+ Dir.chdir(dir) do
44
+ File.write("new.conf", new_config.gsub(/^#.*$/, "").gsub(/(\r\n|\r|\n)+/, "\r\n"))
45
+ File.write("current.conf", current_config.gsub(/^#.*$/, "").gsub(/(\r\n|\r|\n)+/, "\r\n"))
46
+ system("#{diff} -u current.conf new.conf", out: $stdout, err: $stderr)
47
+ end
48
+ end
49
+ end
50
+
29
51
  desc "put ROUTER TEMPLATE", "Put config from router"
30
52
  option :number, type: :numeric, default: 0, aliases: :n, desc: "Configuration number"
31
53
  option :force, type: :boolean, default: false, aliases: :f, desc: "Don't ask to trasfer and load config"
@@ -66,6 +88,16 @@ module Rtprov
66
88
  end
67
89
  end
68
90
 
91
+ desc "print ROUTER TEMPLATE", "Print config"
92
+ option :number, type: :numeric, default: 0, aliases: :n, desc: "Configuration number"
93
+ def print(router_name, template_name)
94
+ router = Router.load(router_name)
95
+
96
+ template = Template.find(router_name, template_name)
97
+ new_config = template.render(router.variables)
98
+ puts new_config
99
+ end
100
+
69
101
  desc "ls", "List routers"
70
102
  def ls
71
103
  Router.names.each do |name|
@@ -1,3 +1,3 @@
1
1
  module Rtprov
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "0.1.2".freeze
3
3
  end
data/rtprov.gemspec CHANGED
@@ -41,6 +41,6 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency "thor"
42
42
 
43
43
  spec.add_development_dependency "bundler", "~> 2.0"
44
- spec.add_development_dependency "rake", "~> 10.0"
44
+ spec.add_development_dependency "rake", "~> 13.0"
45
45
  spec.add_development_dependency "rubocop", "~> 0.74.0"
46
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtprov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - labocho
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-05 00:00:00.000000000 Z
11
+ date: 2022-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: reversible_cryptography
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +117,7 @@ metadata:
117
117
  homepage_uri: https://github.com/labocho/rtprov
118
118
  source_code_uri: https://github.com/labocho/rtprov
119
119
  changelog_uri: https://github.com/labocho/rtprov/master/CHANGELOG.md
120
- post_install_message:
120
+ post_install_message:
121
121
  rdoc_options: []
122
122
  require_paths:
123
123
  - lib
@@ -132,8 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  requirements: []
135
- rubygems_version: 3.0.3
136
- signing_key:
135
+ rubygems_version: 3.3.3
136
+ signing_key:
137
137
  specification_version: 4
138
138
  summary: Yamaha router (RTX or NVR series) provisioning tool
139
139
  test_files: []