Sha256: 7b556fa8c573f83e5caa7da6935296b16d2c7bedc252f7cd38deb06491f6d148

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require 'puppet-debugger/input_responder_plugin'
module PuppetDebugger
  module InputResponders
    class Set < InputResponderPlugin
      COMMAND_WORDS = %w(set :set)
      SUMMARY = 'Set the a puppet debugger config'
      COMMAND_GROUP = :scope

      def run(args = [])
        handle_set(args)
      end

      private

      def handle_set(input)
        output = ''
        # args = input.split(' ')
        # args.shift # throw away the set
        case input.shift
          when /node/
            if name = input.shift
              output = "Resetting to use node #{name}"
              debugger.set_scope(nil)
              debugger.set_node(nil)
              debugger.set_facts(nil)
              debugger.set_environment(nil)
              debugger.set_compiler(nil)
              set_log_level(debugger.log_level)
              debugger.set_remote_node_name(name)
            else
              debugger.out_buffer.puts 'Must supply a valid node name'
            end
          when /loglevel/
            if level = input.shift
              set_log_level(level)
              output = "loglevel #{Puppet::Util::Log.level} is set"
            end
        end
        output
      end

      def set_log_level(level)
        debugger.log_level = level
        Puppet::Util::Log.level = level.to_sym
        buffer_log = Puppet::Util::Log.newdestination(:buffer)
        if buffer_log
          # if this is already set the buffer_log is nil
          buffer_log.out_buffer = debugger.out_buffer
          buffer_log.err_buffer = debugger.out_buffer
        end
        nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puppet-debugger-0.7.0 lib/plugins/puppet-debugger/input_responders/set.rb