[GRASS-dev] clean_temp.c versus deleting mapset's .tmp

Moritz Lennert mlennert at club.worldonline.be
Fri May 22 00:38:34 PDT 2015


On 21/05/15 18:11, Vaclav Petras wrote:
>
> On Thu, May 21, 2015 at 11:01 AM, William Hargrove <hnw at geobabble.org
> <mailto:hnw at geobabble.org>> wrote:
>  >
>  > This is for old GRASS codgers like me who run GRASS commands
> *outside* the GRASS shell, by setting all of the environment variables.
>  >
>  > This is the way that we change active mapsets as well.
>  >
>  > I do this to have all of the *nix commands integrated seamlessly with
> GRASS commands.
>  >
>
> Hi Bill,
>
> it's good to have this feedback. I understand what you are doing but I'm
> not sure about the details.
>
>  >
>  > If a particular GRASS command aborts or dies, the temp files in the
> .tmp directory are left behind.
>  >
>  > Since we never run the shell, .tmp is never deleted, and they build
> up, eating disk space.
>  >
>
> So you are using clean_temp in your scripts?
>
>  >
>  >
>  > This thread is also germane with respect to the current discussion of
> GRASS environment variables.
>  >
>  > Currently I shift between GRASS 6 and 7 by sourcing an alternative
> .bashrc file that makes use of the strippath function to clean GRASS 6
> stuff from the existing paths ...
>  >
>  > Please don't eliminate env variables or alter them too significantly ...
>
> It would be best if you send the scripts and .bashrc you are using. If
> you have there too much private stuff and you don't want to clean it,
> please send it to me, I'll should be able to understand. It's hard to
> tell which parts of interface people are actually using (or what they
> consider as an interface). The actual code is thus necessary.
>
> Note also that there is a new interface (in trunk) which removes the
> need for setting up the (fake) GRASS session manually [1]. But changes
> to user's scripts are needed.
>
> [1] https://trac.osgeo.org/grass/ticket/2579#comment:14


I think this new interface is really great and will be really useful for 
many of us. Thanks Vaclav !

However, if you write a script calling many different GRASS commands, it 
might still be more convenient to just set a few variables at the 
beginning of the script (or source a specific rc files as Bill) and then 
just be able to call grass commands as any other shell command, instead 
of having to type 'grass71 ~/grassdata/nc_spm_08_grass7/user1/ --exec' 
every time you want to run a module.

I think that more generally, unless a feature really causes trouble, it 
is safer to just leave it instead of trying to remove it for reasons of 
"code cleanliness" or aesthetics. Or said more simply: if it's not 
clearly broken, don't fix it.

GRASS GIS is so old that many different use forms have developed over 
the decades and it would be very difficult to know about all of them. 
And even though many new users (and sometimes developers) approach GRASS 
GIS as a monolothic GUI application, many older users use it in the form 
it was conceived in, i.e. a collection of command line tools that 
integrate into the *nix environment. Please don't make life harder for 
those.

Moritz


More information about the grass-dev mailing list