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-2.3.6.0 plugins/communicators/winrm/command_filter.rb
tamtam-vagrant-reload-1.2.1 vendor/cache/vagrant-2092df529ae7/plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.3.3.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.3.2.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.19.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.18.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.16.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.14.0 plugins/communicators/winrm/command_filter.rb
vagrant-aws-mkubenka-0.7.2.pre.24 vendor/bundle/ruby/2.7.0/bundler/gems/vagrant-22795b161bf6/plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.10.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.9.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.8.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.7.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.6.2 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.6.1 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.6.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.5.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.4.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.3.0 plugins/communicators/winrm/command_filter.rb
vagrant-unbundled-2.2.2.0 plugins/communicators/winrm/command_filter.rb