From: David Calvin on

Hello,

I am new here, so I apologize if this is a lame question. I have googled
for quite awhile trying to find out the answer to my question to no
avail.

In a script, I am issuing this line:


returnAddress = `defaults read
/path/to/conappsqa.bundle/serverconfig serverAddress`

Which reads a plist entry on my computer. If the plist entry is not
present then I get the following spew on the command line when I run the
script:


2010-07-08 09:32:37.273 defaults[29326:40b]
The domain/default pair of (/path/to/conappsqa.bundle/serverconfig,
serverAddress) does not exist

Is there a way I can eliminate this kind of spew? I just want to execute
the code and handle the error. I don't want all the mess.

Any tips?

Thanks.
--
Posted via http://www.ruby-forum.com/.

From: James Harrison on
Have you tried just simply stderr? You could either run the script and have 2>/dev/null be the redirect, or inside the backticks I think you can safely use the same redirect.

You can do it more ruby specific by redefining $STDERR, but that's probably overkill if it's a simple script.


James


On Jul 8, 2010, at 10:45 AM 7/8/10, David Calvin wrote:

>
> Hello,
>
> I am new here, so I apologize if this is a lame question. I have googled
> for quite awhile trying to find out the answer to my question to no
> avail.
>
> In a script, I am issuing this line:
>
>
> returnAddress = `defaults read
> /path/to/conappsqa.bundle/serverconfig serverAddress`
>
> Which reads a plist entry on my computer. If the plist entry is not
> present then I get the following spew on the command line when I run the
> script:
>
>
> 2010-07-08 09:32:37.273 defaults[29326:40b]
> The domain/default pair of (/path/to/conappsqa.bundle/serverconfig,
> serverAddress) does not exist
>
> Is there a way I can eliminate this kind of spew? I just want to execute
> the code and handle the error. I don't want all the mess.
>
> Any tips?
>
> Thanks.
> --
> Posted via http://www.ruby-forum.com/.
>


From: Brian Candler on
David Calvin wrote:
> Any tips?

If you're running under some Unix-like O/S, then try

returnAddress = `defaults read /path/to/conappsqa.bundle/serverconfig
serverAddress 2>/dev/null`

Otherwise look at open3.rb in the standard library.
--
Posted via http://www.ruby-forum.com/.

From: Robert Klemme on
2010/7/8 David Calvin <babybluebeach(a)gmail.com>:
>
> Hello,
>
> I am new here, so I apologize if this is a lame question. I have googled
> for quite awhile trying to find out the answer to my question to no
> avail.
>
> In a script, I am issuing this line:
>
>
>    returnAddress = `defaults read
> /path/to/conappsqa.bundle/serverconfig serverAddress`
>
> Which reads a plist entry on my computer. If the plist entry is not
> present then I get the following spew on the command line when I run the
> script:
>
>
> 2010-07-08 09:32:37.273 defaults[29326:40b]
> The domain/default pair of (/path/to/conappsqa.bundle/serverconfig,
> serverAddress) does not exist
>
> Is there a way I can eliminate this kind of spew? I just want to execute
> the code and handle the error. I don't want all the mess.
>
> Any  tips?

If you want to silence all error output and you run on some form of
*nix you can do:

$stderr.reopen '/dev/null'

Example:

$ ruby19 -e 'x=`sh -c "echo foo >&2"`'
foo
$ ruby19 -e '$stderr.reopen("/dev/null");x=`sh -c "echo foo >&2"`'
$

Otherwise you need open3 as Brian said or do the fork exec yourself.

Kind regards

robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/