25 lines
537 B
Crystal
25 lines
537 B
Crystal
|
|
||
|
require "./vault"
|
||
|
|
||
|
module GX
|
||
|
class Config
|
||
|
getter vaults : Array(Vault)
|
||
|
|
||
|
def initialize(config_path : String)
|
||
|
@vaults = [] of Vault
|
||
|
load_vaults(config_path)
|
||
|
end
|
||
|
|
||
|
private def load_vaults(config_path : String)
|
||
|
yaml_data = YAML.parse(File.read(config_path))
|
||
|
vaults_data = yaml_data["vaults"].as_a
|
||
|
|
||
|
vaults_data.each do |vault_data|
|
||
|
name = vault_data["name"].as_s
|
||
|
encrypted_path = vault_data["encrypted_path"].as_s
|
||
|
@vaults << Vault.new(name, encrypted_path, "#{name}.Open")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|