[Scons-users] Can't get Delete Action to delete a directory.

M Busche spammymatt94 at yahoo.com
Thu Feb 7 00:02:57 EST 2013


Bill,

That didn't seem to help.  Same result.  Actually I'm now even more confused because I don't understand why specifying Dir('$TARGET') as the source doesn't produce a complaint about circular dependencies.

Why does my test program work for a file but not for a directory?  Why are they so different?

No, I don't want Execute as I explain now.

This problem is part of my effort to improve my bundler/packager which you (and Gary) have helped me with before:  in an earlier posting to this group (a week or two ago) you'll note that I was asking how to run a Mkdir command without any sources. That now works just fine.  But to do things right I also need to be able to remove a directory.

The specific scenario is as follows.

1) I have an empty directory named "out" in my source code directory structure that I want to copy to my software distribution directory for bundling.  (Perhaps it's an output directory for test programs or something -- whatever.)
2) I run scons and the distribution directory gets created including this directory named "out".
3) Now I decide I don't like the name "out" and rename it "output" in my source code directory tree.
4) I run scons again and the new directory "output" gets created, but the packager also recognizes that the directory "out" is no longer needed and so wants to delete it.  I'm trying to issue a command to delete this directory.  I guess I could use Excute, but this operation is REALLY part of the software distribution generation step and shouldn't be run until all unit tests have completed.  I've got that dependency working for everything else by issuing the single directory level dependency:

Depends(Dir("dist"), Dir("test"))

Because the Delete target is a directory under "dist", I would expect this delete directory request to also be made appropriately contingent upon the successful build of all targets under directory "test" by the above dependency declaration.

I hope that helps.

Matt




________________________________
From: William Deegan <bill at baddogconsulting.com>
To: scons-users at scons.org
Sent: Wednesday, February 6, 2013 9:13 PM
Subject: Re: [Scons-users] Can't get Delete Action to delete a directory.


Matt,


On 02/06/2013 04:13 PM, M Busche wrote:

I was still hoping for some help with this.

>

>

>

>Is my Ubuntu command line capture incomprehensible?  The trace below shows how a 2-line SConstruct file will remove a simple file, but not a directory.  I don't get it.

>

Likely the issue is the source you specify for the command.
It's always up to date, thus:

$ scons -Q tgt=bar

>scons: `.' is up to date.

>

t = Command(tgt, [], [Delete("$TARGET")])

Perhaps try:

t = Command(tgt,Dir('$TARGET'),[Delete("$TARGET"))

Though this logic is a bit curious, what are you trying to do?
Perhaps you really want to use Execute()?

-Bill





>

>Thanks for any insight you can offer into this unexpected behavior.

>

>

>Matt

>

>

>

>

>

>

>________________________________

> From: M Busche <spammymatt94 at yahoo.com>

>To: "scons-users at scons.org" <scons-users at scons.org>

>Sent: Friday, February 1, 2013 10:30 PM

>Subject: [Scons-users] Can't get Delete Action to delete a directory.

>

>

>Here's my very simple test:

>

>

>

>$ ls -a

>.  ..  SConstruct

>$ cat SConstruct

>tgt = ARGUMENTS.get('tgt', '')

>t = Command(tgt, [], [Delete("$TARGET")])

>$ touch foo

>$ ls -a

>.  ..  foo  SConstruct

>$ scons -Q tgt=foo

>Delete("foo")

>$ ls -a

>.  ..  .sconsign.dblite  SConstruct

>$ mkdir bar

>$ scons -Q tgt=bar

>scons: `.' is up to date.

>$ ls -a

>.  ..  bar  .sconsign.dblite  SConstruct

>$

>

>

>I must be missing something.  Can someone explain why Delete won't delete directory bar when the man page clearly states that the Delete factory works for both files and directory trees?

>

>

>Thanks,

>Matt

>

>


_______________________________________________
Scons-users mailing list
Scons-users at scons.org
http://four.pairlist.net/mailman/listinfo/scons-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130206/b121ae36/attachment-0001.html>


More information about the Scons-users mailing list