Sha256: bd87324706468e59b2b919aeae644db915ddfc32c9a4ee1a80f75d5d4a184cbc

Contents?: true

Size: 1.22 KB

Versions: 62

Compression:

Stored size: 1.22 KB

Contents

module VagrantPlugins
  module CommunicatorWinRM
    # Handles loading and applying all available WinRM command filters
    class CommandFilter
      @@cmd_filters = [
        "cat",
        "chmod",
        "chown",
        "grep",
        "rm",
        "test",
        "uname",
        "which",
        "mkdir",
      ]

      # Filter the given Vagrant command to ensure compatibility with Windows
      #
      # @param [String] The Vagrant shell command
      # @returns [String] Windows runnable command or empty string
      def filter(command)
        command_filters.each { |c| command = c.filter(command) if c.accept?(command) }
        command
      end

      # All the available Linux command filters
      #
      # @returns [Array] All Linux command filter instances
      def command_filters
        @command_filters ||= create_command_filters()
      end

      private

      def create_command_filters
        [].tap do |filters|
          @@cmd_filters.each do |cmd|
            require_relative "command_filters/#{cmd}"
            class_name = "VagrantPlugins::CommunicatorWinRM::CommandFilters::#{cmd.capitalize}"
            filters << Module.const_get(class_name).new
          end
        end
      end
    end
  end
end

Version data entries

62 entries across 55 versions & 7 rubygems

Version Path
vagrant-unbundled-1.9.8.1 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.9.7.1 plugins/communicators/winrm/command_filter.rb
vagrant-aws-mkubenka-0.7.2.pre.14 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/communicators/winrm/command_filter.rb
vagrant-aws-mkubenka-0.7.2.pre.11 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/communicators/winrm/command_filter.rb
vagrant-aws-mkubenka-0.7.2.pre.10 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/communicators/winrm/command_filter.rb
vagrant-aws-mkubenka-0.7.2.pre.9 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.9.5.1 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.9.1.1 plugins/communicators/winrm/command_filter.rb
vagrant-compose-yaml-0.1.3 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/communicators/winrm/command_filter.rb
vagrant-compose-yaml-0.1.2 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/communicators/winrm/command_filter.rb
vagrant-compose-yaml-0.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/communicators/winrm/command_filter.rb
vagrant-compose-yaml-0.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.5.2 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.5.1 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.4.2 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.4.1 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.1.2 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-1.8.1.1 plugins/communicators/winrm/command_filter.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-1cf2a8db4ccb/plugins/communicators/winrm/command_filter.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-b421af58e8b3/plugins/communicators/winrm/command_filter.rb