Oh I completely understand :)  No worries :)

I tend to go overboard with Ant. To be honest, I use it as more than a build environment...I use it as a cross platform scripting language :)

Anyway, you can probably do the same thing with beanshell or another scripting language directly from within your Ant script. The simplest thing I found was to use regular expressions (which is what my example does). I used a macrodef as a kind of reusable function I can call...

I am unaware of a substring task at all. Ant Contrib (a third party Ant library) has some fairly useful features...I really use the heck out of it...

Again, if you want substring or the like you can, perhaps, write your own Ant task in Java...or as I mentioned do so using a scripting language...

I find Beanshell really useful and do some stuff with it on occasion...

On Fri, 16 Jan 2009, Georg-Johann Lay wrote:

Scot P. Floess schrieb:

I am enclosing my macrodef to compute a branch:

    <macrodef
        name        = "compute-branch"
description = "Compute the branch based upon a root dir, @{root}, and full path, @{full-path}. The branch represents the full path minus the root dir. Please note: if @{root} does not exist in @{full-path}, @{property} will be set with an empty value."
        uri         = "http://keros.sourceforge.net";>

<attribute name = "root" description = "The root of the path defined in @{full-path}."/> <attribute name = "full-path" description = "The absolute path for which @{root} is the root of the path and the branch computed is this path minus the root."/> <attribute name = "property" description = "The property to set with the branch."/> <attribute name = "description" default = "" description = "Information about this macro call."/>

        <sequential>
            <!--

                Grab data past @{root} in @{full-path}.

            -->
<ant-contrib:propertyregex property = "keros.compute-branch.COMPUTE_BRANCH" override = "true" input = "@{full-path}" regexp = "@{root}(.*)" select = "\1" description = "Parse out the branch from the value contained in @{root}"/>

            <!--

Remove the leading file separator (if it is there). If it is not there,
                simply use the value as is.

            -->
<ant-contrib:propertyregex property = "@{property}" override = "true" input = "${keros.compute-branch.COMPUTE_BRANCH}" regexp = "^[${file.separator}](.*)" replace = "\1" defaultValue = "${keros.compute-branch.COMPUTE_BRANCH}" description = "Remove the leading file separator if its there"/>
        </sequential>
    </macrodef>

Hi, thanks for your answer.

Uhhh, I am an absolute ant newbie.

I do not believe it. All this is needed just to remove a prefix prom a string?!

Let me know if you have any questions...

Ant proper really is not capable to perform things that look in C like

char * prefix;
char * path;
char * suffix = path + strlen (prefix);

or like

String prefix;
String path;
String suffix = path.substring (prefix.length());

in Java?

I am trying to *simplify* Makefiles by using ant. And not to make things even more complex and harder to understand and to maintain.
If ant cannot do it, it is not what I am looking for...

All I could find is a strlen:

<length property="prefix.length" string="${prefix}" />

So what is missing is something like substring or an analogon to basename that can remove a prefix instead of a suffix.

I am using Ant Contrib's propertyregex task to do this... Adjust URI's, etc for your needs :)

The URI in your macrodef?
To that value must it be set? To kerberos zip?
Or to one of the jars in it?

Please be kind, I am just trying ant to look if it can make things simpler.

Regards, Georg-Johann


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org



Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate   http://sourceforge.net/projects/jplate
Chief Architect JavaPIM  http://sourceforge.net/projects/javapim

Architect Keros          http://sourceforge.net/projects/keros

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to