lib/potassium/helpers/docker-helpers.rb in potassium-5.2.0 vs lib/potassium/helpers/docker-helpers.rb in potassium-5.2.1
- old
+ new
@@ -1,9 +1,9 @@
class DockerHelpers
def initialize(compose_path)
@compose_path = compose_path
- @compose = YAML.load(File.read(compose_path))
+ @compose = YAML.safe_load(File.read(compose_path))
end
def add_link(target_service, linked_service)
service = @compose['services'][target_service]
unless service['links'].is_a? Array
@@ -21,16 +21,25 @@
service['environment'][variable_key] = variable_value
save
end
def add_service(name, definition)
- service = {}
- service[name] = YAML.load(definition)
- @compose['services'].merge!(service)
- save
+ add_leaf('services', name, definition)
end
+ def add_volume(name, definition = '')
+ add_leaf('volumes', name, definition)
+ end
+
private
+
+ def add_leaf(root_name, leaf_name, definition)
+ leaf = {}
+ leaf[leaf_name] = YAML.safe_load(definition)
+ @compose[root_name] = {} unless @compose[root_name].is_a? Hash
+ @compose[root_name].merge!(leaf)
+ save
+ end
def save
File.open(@compose_path, 'w') { |f| f.write @compose.to_yaml }
end
end