Validate that commands only contain proper characters
This commit is contained in:
parent
64ece507ad
commit
e4fa5bb489
|
@ -4,6 +4,13 @@ module Vagrant
|
||||||
module Plugin
|
module Plugin
|
||||||
# The superclass for version 1 plugins.
|
# The superclass for version 1 plugins.
|
||||||
class V1
|
class V1
|
||||||
|
# Exceptions that can be thrown within the plugin interface all
|
||||||
|
# inherit from this parent exception.
|
||||||
|
class Error < StandardError; end
|
||||||
|
|
||||||
|
# This is thrown when a command name given is invalid.
|
||||||
|
class InvalidCommandName < Error; end
|
||||||
|
|
||||||
LOGGER = Log4r::Logger.new("vagrant::plugin::v1")
|
LOGGER = Log4r::Logger.new("vagrant::plugin::v1")
|
||||||
|
|
||||||
# Returns a list of registered plugins for this version.
|
# Returns a list of registered plugins for this version.
|
||||||
|
@ -66,6 +73,11 @@ module Vagrant
|
||||||
def self.command(name=UNSET_VALUE, &block)
|
def self.command(name=UNSET_VALUE, &block)
|
||||||
data[:command] ||= Registry.new
|
data[:command] ||= Registry.new
|
||||||
|
|
||||||
|
# Validate the name of the command
|
||||||
|
if name.to_s !~ /^[-a-z0-9]/i
|
||||||
|
raise InvalidCommandName, "Commands can only contain letters, numbers, and hyphens"
|
||||||
|
end
|
||||||
|
|
||||||
# Register a new command class only if a name was given.
|
# Register a new command class only if a name was given.
|
||||||
data[:command].register(name.to_sym, &block) if name != UNSET_VALUE
|
data[:command].register(name.to_sym, &block) if name != UNSET_VALUE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue