Thread: Adding a --quiet option to initdb

Adding a --quiet option to initdb

From
Devrim GUNDUZ
Date:
Hi,

Attached is a patch which adds --quiet and --q option to initdb. I
personally needed this option while writing a document and taking
screenshot :) It only shows the error and warning messages, as well as
the last lines.

I've updated the docs. Regression tests pass.

This is my first patch to PostgreSQL source, so please guide me if I
have done something wrong.

Regards,
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/


Attachment

Re: Adding a --quiet option to initdb

From
Andrew Dunstan
Date:
On Wed, 2006-01-25 at 16:08 +0200, Devrim GUNDUZ wrote:
> Hi,
>
> Attached is a patch which adds --quiet and --q option to initdb. I
> personally needed this option while writing a document and taking
> screenshot :) It only shows the error and warning messages, as well as
> the last lines.
>
> I've updated the docs. Regression tests pass.
>
> This is my first patch to PostgreSQL source, so please guide me if I
> have done something wrong.
>

Devrim,

What's wrong with just sending stdout to /dev/null? If that eats error
messages too then we should probably fix initdb to send those to stderr.

But if we are going to do this, then I also noticed a couple of things:

. you should explicitly initialize the quiet variable, in keeping with
the style of the others nearby.

. the idiom

   if (! quiet)
   {
      fputs(_("some message"),stdout);
      fflush(stdout);
   }

should not be endlessly repeated. Make it a macro or a function.

I wonder if we can just set rid of all those fflush() calls by
unbuffering stdout with a single call to setbuf() or setvbuf()?



cheers

andrew




Re: [HACKERS] Adding a --quiet option to initdb

From
Devrim GUNDUZ
Date:
Hi Andrew,

On Wed, 2006-01-25 at 09:28 -0500, Andrew Dunstan wrote:
> What's wrong with just sending stdout to /dev/null? If that eats error
> messages too then we should probably fix initdb to send those to
> stderr.

We have the same options with reindexdb, for example. I think a command
line option

> But if we are going to do this, then I also noticed a couple of
> things:
>
> . you should explicitly initialize the quiet variable, in keeping with
> the style of the others nearby.

Oh, I've missed it. Patch updated.

> . the idiom
>
>    if (! quiet)
>    {
>       fputs(_("some message"),stdout);
>       fflush(stdout);
>    }
>
> should not be endlessly repeated. Make it a macro or a function.

I'm looking at it now.

Thanks for your comments. I'll provide a new patch soon, which will also
include Alvaro's suggestion about surpression both header and footer
(--make-initdb-really-quiet-mode :) )

Regards,
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/



Re: [HACKERS] Adding a --quiet option to initdb

From
Devrim GUNDUZ
Date:
Hi,

On Wed, 2006-01-25 at 17:22 +0200, Devrim GUNDUZ wrote:
> On Wed, 2006-01-25 at 09:28 -0500, Andrew Dunstan wrote:
> > What's wrong with just sending stdout to /dev/null? If that eats
> error
> > messages too then we should probably fix initdb to send those to
> > stderr.
>
> We have the same options with reindexdb, for example. I think a
> command
> line option

(Opps...) We have the same options with reindexdb, for example. I think
a command line options is better and required.

Regards,
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/



Re: [HACKERS] Adding a --quiet option to initdb

From
Peter Eisentraut
Date:
Devrim GUNDUZ wrote:
> We have the same options with reindexdb, for example.

reindexdb and friends inherited that option from psql.  On a green
field, they probably wouldn't have it.  psql has more complex
semantics, so it's not clear whether that's the same thing.

> I think a command line options is better and required.

I think we need more proof of that than a use case involving taking
screen shots.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

Re: [HACKERS] Adding a --quiet option to initdb

From
Tom Lane
Date:
Devrim GUNDUZ <devrim@commandprompt.com> writes:
> Attached is a patch which adds --quiet and --q option to initdb.

Why is this a good idea?

            regards, tom lane

Re: [HACKERS] Adding a --quiet option to initdb

From
Devrim GUNDUZ
Date:
Hi,

On Wed, 2006-01-25 at 11:28 -0500, Tom Lane wrote:
> Devrim GUNDUZ <devrim@commandprompt.com> writes:
> > Attached is a patch which adds --quiet and --q option to initdb.
>
> Why is this a good idea?

I was playing with 8.2 RPM init script and thought that instead of
directing the output to /dev/null, it would be better to use a command
line option for that. Also, we are designing a new installer project and
--quiet might help us.

I would rise this idea in -hackers before providing a patch, but since
this is my first patch, I thought it would be a good exercise for me.

Regards,
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/



Re: [HACKERS] Adding a --quiet option to initdb

From
Bruce Momjian
Date:
Peter Eisentraut wrote:
> Devrim GUNDUZ wrote:
> > We have the same options with reindexdb, for example.
>
> reindexdb and friends inherited that option from psql.  On a green
> field, they probably wouldn't have it.  psql has more complex
> semantics, so it's not clear whether that's the same thing.
>
> > I think a command line options is better and required.
>
> I think we need more proof of that than a use case involving taking
> screen shots.

Agreed on both points.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: [HACKERS] Adding a --quiet option to initdb

From
Devrim GUNDUZ
Date:
Hi,

On Wed, 2006-01-25 at 16:32 +0100, Peter Eisentraut wrote:

> > I think a command line options is better and required.
>
> I think we need more proof of that than a use case involving taking
> screen shots.

I've just explained my points as a reply to Tom's mail.

Regards,
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/



Re: [HACKERS] Adding a --quiet option to initdb

From
Bruce Momjian
Date:
Devrim GUNDUZ wrote:
> Hi,
>
> On Wed, 2006-01-25 at 11:28 -0500, Tom Lane wrote:
> > Devrim GUNDUZ <devrim@commandprompt.com> writes:
> > > Attached is a patch which adds --quiet and --q option to initdb.
> >
> > Why is this a good idea?
>
> I was playing with 8.2 RPM init script and thought that instead of
> directing the output to /dev/null, it would be better to use a command
> line option for that. Also, we are designing a new installer project and
> --quiet might help us.
>
> I would rise this idea in -hackers before providing a patch, but since
> this is my first patch, I thought it would be a good exercise for me.

OK, as long as you understand that the patch should not be applied.  "It
might be valuable" from only one person is not enough.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: [HACKERS] Adding a --quiet option to initdb

From
Greg Stark
Date:
Bruce Momjian <pgman@candle.pha.pa.us> writes:

> Devrim GUNDUZ wrote:
> > Hi,
> >
> > On Wed, 2006-01-25 at 11:28 -0500, Tom Lane wrote:
> > > Devrim GUNDUZ <devrim@commandprompt.com> writes:
> > > > Attached is a patch which adds --quiet and --q option to initdb.
> > >
> > > Why is this a good idea?
> >
> > I was playing with 8.2 RPM init script and thought that instead of
> > directing the output to /dev/null, it would be better to use a command
> > line option for that. Also, we are designing a new installer project and
> > --quiet might help us.
>
> OK, as long as you understand that the patch should not be applied.  "It
> might be valuable" from only one person is not enough.

I always wondered why the Redhat init scripts thought it was a clever idea to
redirect the output to /dev/null. It seems like a pessimal user interface
choice. Every time I have to work with a Redhat machine where Postgres isn't
starting up the first thing I have to do is edit the init script so I can what
the problem is.

--
greg

Re: [HACKERS] Adding a --quiet option to initdb

From
Tom Lane
Date:
Greg Stark <gsstark@mit.edu> writes:
> I always wondered why the Redhat init scripts thought it was a clever idea to
> redirect the output to /dev/null. It seems like a pessimal user interface
> choice. Every time I have to work with a Redhat machine where Postgres isn't
> starting up the first thing I have to do is edit the init script so I can what
> the problem is.

Yeah, that's finally fixed in the latest versions.  The problem was that
sending the postmaster log into a file wasn't a good long-term idea
because of the lack of any way to rotate the log.  Current RPMs set up
redirect_stderr with some reasonable rotation options instead.

            regards, tom lane