[GRASS-dev] [bug #5483] (grass) g.mremove through gis managerGUI
seems not to work well
Patton, Eric
epatton at nrcan.gc.ca
Mon Feb 12 09:08:32 EST 2007
I like this solution, Hamish. I always rely on g.mremove to produce a
listing prior to deletion, and your patch seems to preserve this
behavior.
--
Eric Patton
email: epatton at nrcan.gc.ca
> -----Original Message-----
> From: grass-dev-bounces at grass.itc.it
> [mailto:grass-dev-bounces at grass.itc.it] On Behalf Of Hamish
> Sent: Monday, February 12, 2007 5:24 AM
> To: Glynn Clements
> Cc: grass-bugs at intevation.de; paul-grass at stjohnspoint.co.uk;
> grass-dev at grass.itc.it
> Subject: Re: [GRASS-dev] [bug #5483] (grass) g.mremove
> through gis managerGUI seems not to work well
>
> Maciej:
> > > What do you think about this: if g.mremove cannot remain
> > > half-interactive, I'd suggest getting rid of it alltogether, and
> > > replacing it's manual page with an instruction how to use
> "g.mlist
> > > sep=," and feed it's output to g.remove by hand (I can write it).
>
> No, just remove it from the GUI if the possibility of
> interactivity is an issue, or create a wrapper script for the
> GUI which does not include the offending flag. I don't think
> it is so bad to have command-line-only power-tools, and to
> leave g.mremove out of the GUI if that's what is required.
>
> > > Although removing a module during GRASS 6 should be
> avoided too, I
> > > think that this would do less harm than letting g.mremove delete
> > > user's data without control.
>
> Removing a module during GRASS 6 should not be allowed at all.
> That will break scripts and render documentation+books out of date.
>
> > > Or maybe revert the changes in g.mremove as it was, for
> GRASS 6, and
> > > postpone working on it to GRASS 7? As for GRASS 7, I'd
> still vote on
> > > removing it completely, as described above, instead of
> removing it's
> > > interactiveness, for the sake of user's data.
>
> Glynn:
> > Alternative possibilities:
> >
> > 1. Rename g.mremove (e.g. to g.remove.multi); if anyone
> asks where it
> > went, remind them that the new version doesn't request confirmation.
> >
> > 2. Revert g.mremove, add a version which doesn't prompt,
> change gis.m
> > to only refer to the non-prompting version.
> >
> > Personally, I'd favour #1; option #2 undermines attempts to get
> > developers to realise that terminal interaction is unacceptable.
>
> Personally I'd prefer #2 or removing g.mremove from the GUI menu vs.
> adding yet another duplicate module.
>
> but wait --
>
> ** A compromise idea: make g.mremove without "-f" exit (0 or
> 1?) after listing the files the regex would match; have it
> only delete something if "-f" is used. The extra tick of
> brain activity to type the extra 3 chars should be enough to
> invoke the do-I-really-want-to-do-this 2nd thought, if not,
> well that's not our problem, we tried. That way we only
> "break" interactive mode, and the new solution is in a way
> interactive (they have to retype the command).
>
> -- patch attached.
>
> > In my experience, any rule with an "except in special
> cases" qualifier
> > may as well not exist. Everyone thinks that their pet case
> qualifies,
> > and you end up with a useless mess.
> >
> > Either you can rely upon GRASS commands being scriptable, or you
> > can't. Right now, you can't;
>
> Point taken.
>
> > if you try to build something on top of GRASS, sooner or later
> > something is going to try to prompt the non-existent user for input
> > which will never arrive.
>
> It's a worthy goal, and something we should do for GRASS 7,
> but we can't go around breaking people's scripts in order to
> make their scripts easier to write! [Glynn's patch in CVS
> does not do that; some of the proposed solutions might] As
> far as g.mremove goes, I imagine scripters figured out they
> needed to use "-f" when they wrote it.
>
>
> So how do folks feel about the compromise solution? Without
> -f it skips the y/n prompt, forcing "no", and a functional
> g.remove command line is sent to stdout for perusal[, piping,
> logging, whatever], along with a message to stderr that you
> need to use -f if you actually want to remove files.
>
>
> Hamish
>
More information about the grass-dev
mailing list