ovh_dnsup 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1ac8b726a44dd4004ac71fc04ce7933329500d8b506647cb8c6d51758853b08
4
- data.tar.gz: 4957373f5151ad11041ccc39e9308d1c699e0e04cc76fb92e36f25fce28ba086
3
+ metadata.gz: 06b3967e54f0a66f9e3b42c8e804208e15302401ee338e7d253d484bb58f0a9c
4
+ data.tar.gz: 4242c9feb329b3511d27bbe25bfd026ba0ef6269246d01d9a5990b79147f69a4
5
5
  SHA512:
6
- metadata.gz: 0a70d7dcbb1aed2ae47e6300e525851a5d30402e8d0bbef24ef6dbecf7c03296bb8c232e1dd8e30db45df044be1d1367a85da1eb80f448ea8ea64df7cccfc8d2
7
- data.tar.gz: 00b6ec721be8a9e0319e605fb8d6be7c10fa778231cc36705eef6f636d55279b943ae660e52386f1ad7b511ad6c324c400b581b8c221735bc31965860ab9baf0
6
+ metadata.gz: c6ff5d8c42407bd84d36d2e779d8410beec9153c6fbee6fa175efdf7e72c680ad8e3831c00c75c718d1cf49aeef7ff6a48843bb8a0532baaf45d1293dd135a48
7
+ data.tar.gz: e46c823e842d3b1e525f47def025f42668abda6f908fe1284d408329d1b83d9acdf07b94dfc622d9845bca9595d5db8d392aaa12cd349938ea3102458f3035fc
@@ -0,0 +1,7 @@
1
+ # OvhDnsup - Dynamic DNS for IPv6
2
+
3
+ ## 0.2.0
4
+
5
+ - Added comments
6
+ - Fixed detection of IPv6 local addresses
7
+
@@ -17,7 +17,10 @@ require 'socket'
17
17
  require_relative 'domain_manager'
18
18
 
19
19
  module OvhDnsup
20
+ # The command-line interface.
20
21
  module Cli
22
+
23
+ # Run the command-line interface.
21
24
  def self.run
22
25
 
23
26
  @conf_fn = File.join(Dir.home, '.ovh_dnsup.conf')
@@ -323,7 +326,10 @@ module OvhDnsup
323
326
  end
324
327
  end
325
328
 
326
- # version: the IP version
329
+ # Get the IP address of an interface
330
+ #
331
+ # @param interface The interface name.
332
+ # @param version The IP version, either 4 or 6.
327
333
  def self.get_interface_address(interface:, version: nil)
328
334
  ipv4 = []
329
335
  ipv6 = []
@@ -339,7 +345,7 @@ module OvhDnsup
339
345
  end
340
346
 
341
347
  # filter local addresses
342
- ipv6.select { |addr| !/^fe80/ =~ addr }
348
+ ipv6.select! { |addr| !(/^(fc|fd|fe8|fe9|fea|feb)/ =~ addr) }
343
349
 
344
350
  if !ipv6.empty? && (version == nil || version == 6)
345
351
  return ipv6[0]
@@ -350,6 +356,7 @@ module OvhDnsup
350
356
  end
351
357
  end
352
358
 
359
+ # Lists all local interfaces and their IP addresses.
353
360
  def self.interfaces
354
361
  parser = OptionParser.new do |opts|
355
362
  opts.banner = 'Usage: ovh_dnsup interfaces'
@@ -16,6 +16,7 @@ require_relative 'ovh_api'
16
16
 
17
17
  module OvhDnsup
18
18
 
19
+ # Allows managing a DNS zone.
19
20
  class DomainManager
20
21
  def initialize(args)
21
22
  @api = OvhApi.new(args)
@@ -145,6 +146,7 @@ module OvhDnsup
145
146
  end
146
147
  end
147
148
 
149
+ # Once authorized, can be used to change a DNS zone entry.
148
150
  class DomainUpdater
149
151
  def initialize(endpoint: nil, application_key: nil, application_secret: nil, state: nil)
150
152
  if state
@@ -29,6 +29,8 @@ module OvhDnsup
29
29
  'soyoustart-ca' => 'https://ca.api.soyoustart.com/',
30
30
  }
31
31
 
32
+ # Access to the OVH rest API. This class manages authentication and
33
+ # signage of API requests.
32
34
  class OvhApi
33
35
  attr_reader :endpoint, :application_key, :application_secret, :consumer_key
34
36
 
@@ -40,6 +42,13 @@ module OvhDnsup
40
42
  ENDPOINTS[endpoint]
41
43
  end
42
44
 
45
+ # You have either to provide endpoint, application_key, and
46
+ # application_secret or provide a state.
47
+ #
48
+ # @param endpoint
49
+ # @param application_key
50
+ # @param application_secret
51
+ # @param state
43
52
  def initialize(endpoint: nil, application_key: nil, application_secret: nil, state: nil)
44
53
  if state
45
54
  self.state = state
@@ -55,6 +64,7 @@ module OvhDnsup
55
64
  end
56
65
  end
57
66
 
67
+ # The state which can be saved and later restored.
58
68
  def state
59
69
  { 'endpoint' => @endpoint,
60
70
  'application_key' => @application_key,
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module OvhDnsup
16
- VERSION = "0.1.0"
16
+ VERSION = "0.2.0"
17
17
  end
@@ -11,6 +11,10 @@ Gem::Specification.new do |spec|
11
11
  spec.homepage = "https://github.com/hrittich/ovh_dnsup"
12
12
  spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
13
 
14
+ spec.metadata = {
15
+ 'homepage_uri' => 'https://github.com/hrittich/ovh_dnsup/blob/main/CHANGELOG.md'
16
+ }
17
+
14
18
  # Specify which files should be added to the gem when it is released.
15
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
16
20
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ovh_dnsup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannah Rittich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-03 00:00:00.000000000 Z
11
+ date: 2021-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -39,6 +39,7 @@ extensions: []
39
39
  extra_rdoc_files: []
40
40
  files:
41
41
  - ".gitignore"
42
+ - CHANGELOG.md
42
43
  - Gemfile
43
44
  - LICENSE
44
45
  - README.md
@@ -54,7 +55,8 @@ files:
54
55
  homepage: https://github.com/hrittich/ovh_dnsup
55
56
  licenses:
56
57
  - Apache-2.0
57
- metadata: {}
58
+ metadata:
59
+ homepage_uri: https://github.com/hrittich/ovh_dnsup/blob/main/CHANGELOG.md
58
60
  post_install_message:
59
61
  rdoc_options: []
60
62
  require_paths: