nwops / puppet-debugger

A interactive live debugger and REPL for the puppet language
https://gitlab.com/puppet-debugger/puppet-debugger
MIT License
121 stars 11 forks source link

repl should throw puppet error message instead of stacktrace #27

Closed logicminds closed 8 years ago

logicminds commented 8 years ago
file{'/tmp/secrets':
  ensure => present,
  conent => file('/etc/passwd'),
}  

output

/app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/util/errors.rb:106:in `fail': no parameter named 'conent' (Puppet::Error)
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type.rb:661:in `[]='
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type.rb:2437:in `block in set_parameters'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type.rb:2431:in `each'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type.rb:2431:in `set_parameters'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type.rb:2387:in `initialize'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/type/file.rb:489:in `initialize'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/resource.rb:419:in `new'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/resource.rb:419:in `to_ral'
        from /app/vendor/bundle/ruby/2.2.0/gems/puppet-4.5.3/lib/puppet/parser/resource.rb:204:in `to_ral'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:60:in `to_resource_declaration'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:69:in `block in expand_resource_type'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:67:in `map'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:67:in `expand_resource_type'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:79:in `normalize_output'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:114:in `handle_input'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/play.rb:85:in `block in play_back_string'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/play.rb:68:in `each'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/play.rb:68:in `play_back_string'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/play.rb:58:in `play_back_url'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/play.rb:8:in `play_back'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/support/input_responders.rb:91:in `play'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:102:in `handle_input'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:190:in `read_loop'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/lib/puppet-repl/cli.rb:224:in `start'
        from /app/vendor/bundle/ruby/2.2.0/bundler/gems/puppet-repl-473180a85ee4/bin/prepl:4:in `<top (required)>'
        from /app/vendor/bundle/bin/prepl:16:in `load'
        from /app/vendor/bundle/bin/prepl:16:in `<main>'
igalic commented 8 years ago

so… "all" you'd have to do is wrap each expression into a try block and check if it throws