Module: Zonesync

Extended by:
T::Sig
Defined in:
lib/zonesync.rb,
lib/zonesync/cli.rb,
lib/zonesync/diff.rb,
lib/zonesync/http.rb,
lib/zonesync/sync.rb,
lib/zonesync/errors.rb,
lib/zonesync/logger.rb,
lib/zonesync/parser.rb,
lib/zonesync/record.rb,
lib/zonesync/route53.rb,
lib/zonesync/version.rb,
lib/zonesync/generate.rb,
lib/zonesync/manifest.rb,
lib/zonesync/provider.rb,
lib/zonesync/zonefile.rb,
lib/zonesync/validator.rb,
lib/zonesync/cloudflare.rb,
lib/zonesync/record_hash.rb

Defined Under Namespace

Modules: RecordHash Classes: CLI, ChecksumMismatchError, Cloudflare, ConflictError, Diff, DuplicateRecordError, Filesystem, Generate, HTTP, Logger, Manifest, Memory, MissingManifestError, Parser, Provider, Record, Route53, Sync, Validator, Zonefile

Constant Summary collapse

Operation =
T.type_alias { [Symbol, T::Array[Record]] }
VERSION =
"0.11.0"

Class Method Summary collapse

Class Method Details

.call(source: "Zonefile", destination: "zonesync", dry_run: false, force: false) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/zonesync.rb', line 22

def self.call source: "Zonefile", destination: "zonesync", dry_run: false, force: false
  source = T.must(source)
  destination = T.must(destination).to_sym
  Sync.new(
    Provider.from({ provider: "Filesystem", path: source }),
    Provider.from(credentials(destination)),
  ).call(dry_run: dry_run, force: force)
end

.credentials(key) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/zonesync.rb', line 41

def self.credentials key
  ActiveSupport::EncryptedConfiguration.new(
    config_path: "config/credentials.yml.enc",
    key_path: "config/master.key",
    env_key: "RAILS_MASTER_KEY",
    raise_if_missing_key: true,
  ).config[key]
end

.generate(source: "zonesync", destination: "Zonefile") ⇒ Object



32
33
34
35
36
37
38
# File 'lib/zonesync.rb', line 32

def self.generate source: "zonesync", destination: "Zonefile"
  source = T.must(source).to_sym
  Generate.new(
    Provider.from(credentials(source)),
    Provider.from({ provider: "Filesystem", path: T.must(destination) }),
  ).call
end