Fixup docker config update

This commit is contained in:
Brian Cain 2018-09-19 10:52:59 -07:00
parent 29128e73b9
commit 4612619dc4
No known key found for this signature in database
GPG Key ID: 43D51080D357A001
2 changed files with 10 additions and 11 deletions

View File

@ -14,12 +14,12 @@ module VagrantPlugins
attr_accessor :build_args attr_accessor :build_args
# The directory with a Dockerfile to build and use as the basis # The directory with a Dockerfile to build and use as the basis
# for this container. If this is set, neither "image" nor "git_repo" # for this container. If this is set, neither "image" nor "git_repo"
# should be set. # should be set.
# #
# @return [String] # @return [String]
attr_accessor :build_dir attr_accessor :build_dir
# The URL for a git repository with a Dockerfile to build and use # The URL for a git repository with a Dockerfile to build and use
# as the basis for this container. If this is set, neither "image" # as the basis for this container. If this is set, neither "image"
# nor "build_dir" should be set. # nor "build_dir" should be set.
@ -197,7 +197,7 @@ module VagrantPlugins
has_image = (other.image != UNSET_VALUE) has_image = (other.image != UNSET_VALUE)
has_build_dir = (other.build_dir != UNSET_VALUE) has_build_dir = (other.build_dir != UNSET_VALUE)
has_git_repo = (other.git_repo != UNSET_VALUE) has_git_repo = (other.git_repo != UNSET_VALUE)
if (has_image ^ has_build_dir ^ has_git_repo) && !(has_image && has_build_dir && has_git_repo) if (has_image ^ has_build_dir ^ has_git_repo) && !(has_image && has_build_dir && has_git_repo)
# image # image
if has_image if has_image
@ -208,7 +208,7 @@ module VagrantPlugins
result.git_repo = nil result.git_repo = nil
end end
end end
# build_dir # build_dir
if has_build_dir if has_build_dir
if @image != UNSET_VALUE if @image != UNSET_VALUE
@ -218,7 +218,7 @@ module VagrantPlugins
result.git_repo = nil result.git_repo = nil
end end
end end
# git_repo # git_repo
if has_git_repo if has_git_repo
if @build_dir != UNSET_VALUE if @build_dir != UNSET_VALUE
@ -296,10 +296,9 @@ module VagrantPlugins
def validate(machine) def validate(machine)
errors = _detected_errors errors = _detected_errors
# FIXME: is there a more ruby-elegant way to write this? if [@build_dir, @git_repo, @image].compact.size > 1
if (@build_dir? 1 : 0) + (@git_repo? 1 : 0) + (@image? 1 : 0) > 1 errors << I18n.t("docker_provider.errors.config.both_build_and_image_and_git")
errors << I18n.t("docker_provider.errors.config.both_build_and_image")
end end
if !@build_dir && !@git_repo && !@image if !@build_dir && !@git_repo && !@image
@ -312,7 +311,7 @@ module VagrantPlugins
errors << I18n.t("docker_provider.errors.config.build_dir_invalid") errors << I18n.t("docker_provider.errors.config.build_dir_invalid")
end end
end end
# Comparison logic taken directly from docker's urlutil.go # Comparison logic taken directly from docker's urlutil.go
if @git_repo && !( @git_repo =~ /^http(?:s)?:\/\/.*.git(?:#.+)?$/ || @git_repo =~ /^git(?:hub\.com|@|:\/\/)/) if @git_repo && !( @git_repo =~ /^http(?:s)?:\/\/.*.git(?:#.+)?$/ || @git_repo =~ /^git(?:hub\.com|@|:\/\/)/)
errors << I18n.t("docker_provider.errors.config.git_repo_invalid") errors << I18n.t("docker_provider.errors.config.git_repo_invalid")

View File

@ -141,7 +141,7 @@ en:
and notify them to not use this communicator for anything except the and notify them to not use this communicator for anything except the
"docker" provider. "docker" provider.
config: config:
both_build_and_image: |- both_build_and_image_and_git: |-
Only one of "build_dir", "git_repo" or "image" can be set Only one of "build_dir", "git_repo" or "image" can be set
build_dir_invalid: |- build_dir_invalid: |-
"build_dir" must exist and contain a Dockerfile "build_dir" must exist and contain a Dockerfile