Return-Path: Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 24264 invoked from network); 25 May 2000 22:43:15 -0000 Received: from marni.otago.ac.nz (root@139.80.75.248) by locus.apache.org with SMTP; 25 May 2000 22:43:15 -0000 Received: from localhost (mariusz@localhost) by marni.otago.ac.nz (8.9.3/8.9.3) with ESMTP id KAA07372 for ; Fri, 26 May 2000 10:43:12 +1200 Date: Fri, 26 May 2000 10:43:12 +1200 (NZST) From: Mariusz Nowostawski To: ant-dev@jakarta.apache.org Subject: [PATCH] exec with include/exclude Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="1351350347-202775212-959294592=:7333" X-Spam-Rating: locus.apache.org 1.6.2 0/1000/N This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --1351350347-202775212-959294592=:7333 Content-Type: TEXT/PLAIN; charset=US-ASCII I wrote a trivial extension to the existing Exec task definition to make it include/exclude aware and I have already posted it here, but without any (positive or negative) feedback. With the patch, the Exec task will behave as usual if used as usual. However, if used with the additional optional attribute 'src' which should be a directory, it will search for files, and will exec a command with attached list of files as an additional last argument. 'src' attribute can be renamed to 'dir' or whatever will be the 'standard look&feel' for matching tasks. One can use the modified Exec for any task which requires executing a binary program with a list of files being its arguments; for example to compile multiple *.idl files: (*) if inside ${basedir}/src/idls we have files: a.idl, b.idl, c.txt it would execute effectively: cd ${basedir}; jidl --output-dir src/main --package com.my.idl \ ${basedir}/src/idl/a.idl ${basedir}/src/idl/b.idl ${basedir}/src/idl/c.txt (*) if inside ${basedir}/src/idls we have files: a.idl, b.idl, c.txt it would execute effectively: cd ${basedir}; jidl --output-dir src/main --package com.my.idl \ ${basedir}/src/idl/a.idl ${basedir}/src/idl/b.idl The patch assumes that the command should be invoked once with the list of all matching files appended to the list of arguments. I cannot find any use of executing commands in list of files sequentially file after file with unknown order but if somebody needs it, the patch can be easily extended (i.e. exec task can be easily extended by additional flag: 'sequential="true"'). Maybe there are usefull file/source processors which can deal with single file at once only. All tools I use can take a list of arguments, and single invocation is enough. best regards Mariusz --1351350347-202775212-959294592=:7333 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="exec-task.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="exec-task.patch" SW5kZXg6IHNyYy9tYWluL29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZz L0V4ZWMuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6 IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvbWFpbi9vcmcvYXBh Y2hlL3Rvb2xzL2FudC90YXNrZGVmcy9FeGVjLmphdmEsdg0KcmV0cmlldmlu ZyByZXZpc2lvbiAxLjkNCmRpZmYgLXUgLXIxLjkgRXhlYy5qYXZhDQotLS0g c3JjL21haW4vb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvRXhlYy5q YXZhCTIwMDAvMDQvMDEgMTQ6MjU6MDcJMS45DQorKysgc3JjL21haW4vb3Jn L2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvRXhlYy5qYXZhCTIwMDAvMDUv MjUgMjI6Mzg6NTgNCkBAIC01OCwxNiArNTgsMjIgQEANCiBpbXBvcnQgamF2 YS5pby4qOw0KIA0KIC8qKg0KLSAqIEV4ZWN1dGVzIGEgZ2l2ZW4gY29tbWFu ZCBpZiB0aGUgb3MgcGxhdGZvcm0gaXMgYXBwcm9wcmlhdGUuDQorICogRXhl Y3V0ZXMgYSBnaXZlbiBjb21tYW5kIGlmIHRoZSBvcyBwbGF0Zm9ybSBpcyBh cHByb3ByaWF0ZS4gVGhpcyB0YXNrIGNvbmZvcm1zIHRvIA0KKyAqIGFsbCBv dGhlciBtYXRjaGluZyB0YXNrcyBhbmQgY2FuIHRha2Ugc3JjIGF0dHJpYnV0 ZSB0b2dldGhlciB3aXRoIGluY2x1ZGUvZXhjbHVkZSB0YWdzIA0KKyAqIGZv ciBmaWxlcyB0byBiZSB1c2VkIGFzIGFyZ3VtZW50cyBvZiB0aGUgc3BlY2lm aWVkIGNvbW1hbmQuIA0KICAqDQogICogQGF1dGhvciBkdW5jYW5AeDE4MC5j b20NCiAgKiBAYXV0aG9yIHJ1YnlzQHVzLmlibS5jb20NCisgKiBAYXV0aG9y IE1hcml1c3ogTm93b3N0YXdza2kgKE1hcm5pKSAgDQorICAgICAgIDxhIGhy ZWY9Im1haWx0bzptbm93b3N0YXdza2lAaW5mb3NjaWVuY2Uub3RhZ28uYWMu bnoiPm1ub3dvc3Rhd3NraUBpbmZvc2NpZW5jZS5vdGFnby5hYy5uejwvYT4N CiAgKi8NCiANCi1wdWJsaWMgY2xhc3MgRXhlYyBleHRlbmRzIFRhc2sgew0K K3B1YmxpYyBjbGFzcyBFeGVjIGV4dGVuZHMgTWF0Y2hpbmdUYXNrIHsNCisN CiAgICAgcHJpdmF0ZSBTdHJpbmcgb3M7DQogICAgIHByaXZhdGUgU3RyaW5n IG91dDsNCi0gICAgcHJpdmF0ZSBGaWxlIGRpcjsNCisgICAgcHJpdmF0ZSBG aWxlIGRpcjsgLy9jb21tYW5kIHRvIGJlIGV4ZWN1dGVkIGluIGRpcg0KKyAg ICBwcml2YXRlIEZpbGUgc3JjRGlyOyAvL3NvdXJjZSBkaXJlY3RvcnkgZm9y IGZpbGVzIHRvIGJlIHVzZWQgYXMgcGFyYW1ldGVycw0KICAgICBwcml2YXRl IFN0cmluZyBjb21tYW5kOw0KIA0KICAgICBwcml2YXRlIHN0YXRpYyBmaW5h bCBpbnQgQlVGRkVSX1NJWkUgPSA1MTI7DQpAQCAtNzcsOSArODMsOCBAQA0K ICAgICB9DQogDQogICAgIHByb3RlY3RlZCBpbnQgcnVuKFN0cmluZyBjb21t YW5kKSB0aHJvd3MgQnVpbGRFeGNlcHRpb24gew0KLQ0KLSAgICAgICAgaW50 IGVyciA9IC0xOyAvLyBhc3N1bWUgdGhlIHdvcnN0DQotDQorICAgICAgICBp bnQgZXJyID0gLTE7DQorICAgICAgICANCiAgICAgICAgIC8vIHRlc3QgaWYg b3MgbWF0Y2gNCiAgICAgICAgIFN0cmluZyBteW9zID0gU3lzdGVtLmdldFBy b3BlcnR5KCJvcy5uYW1lIik7DQogICAgICAgICBwcm9qZWN0LmxvZygiTXlv cyA9ICIgKyBteW9zLCBQcm9qZWN0Lk1TR19WRVJCT1NFKTsNCkBAIC0xMDQs NDEgKzEwOSwyNSBAQA0KICAgICAgICAgfQ0KIA0KICAgICAgICAgdHJ5IHsN Ci0gICAgICAgICAgICAvLyBzaG93IHRoZSBjb21tYW5kDQotICAgICAgICAg ICAgcHJvamVjdC5sb2coY29tbWFuZCwgImV4ZWMiLCBQcm9qZWN0Lk1TR19W RVJCT1NFKTsNCisgICAgICAgICAgICBpZihzcmNEaXIgPT0gbnVsbCl7IC8v bm9ybWFsIGV4ZWMsIG5vIGZpbGVzIGluY2x1ZGVkIGFzIGFyZ3VtZW50cw0K IA0KLSAgICAgICAgICAgIC8vIGV4ZWMgY29tbWFuZCBvbiBzeXN0ZW0gcnVu dGltZQ0KLSAgICAgICAgICAgIFByb2Nlc3MgcHJvYyA9IFJ1bnRpbWUuZ2V0 UnVudGltZSgpLmV4ZWMoY29tbWFuZCk7DQorICAgICAgICAgICAgICBwcm9q ZWN0LmxvZyhjb21tYW5kLCAiZXhlYyIsIFByb2plY3QuTVNHX1ZFUkJPU0Up Ow0KKyAgICAgICAgICAgICAgZXJyID0gZXhlY3V0ZUNvbW1hbmQoY29tbWFu ZCk7DQogDQotICAgICAgICAgICAgUHJpbnRXcml0ZXIgZm9zPW51bGw7DQot ICAgICAgICAgICAgaWYoIG91dCE9bnVsbCApICB7DQotICAgICAgICAgICAg ICAgIGZvcz1uZXcgUHJpbnRXcml0ZXIoIG5ldyBGaWxlV3JpdGVyKCBvdXQg KSApOw0KLSAgICAgICAgICAgICAgICBwcm9qZWN0LmxvZygiT3V0cHV0IHJl ZGlyZWN0ZWQgdG8gIiArIG91dCwgUHJvamVjdC5NU0dfVkVSQk9TRSk7DQot ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH1lbHNley8vZXhlY0Zvciwg ZXhlY3V0ZXMgc2luZ2xlIGNvbW1hbmQgd2l0aCBnaXZlbiBmaWxlIGxpc3QN CiANCi0gICAgICAgICAgICAvLyBjb3B5IGlucHV0IGFuZCBlcnJvciB0byB0 aGUgb3V0cHV0IHN0cmVhbQ0KLSAgICAgICAgICAgIFN0cmVhbVB1bXBlciBp bnB1dFB1bXBlciA9DQotICAgICAgICAgICAgICAgIG5ldyBTdHJlYW1QdW1w ZXIocHJvYy5nZXRJbnB1dFN0cmVhbSgpLCAiZXhlYyIsIHByb2plY3QsIGZv cyk7DQotICAgICAgICAgICAgU3RyZWFtUHVtcGVyIGVycm9yUHVtcGVyID0N Ci0gICAgICAgICAgICAgICAgbmV3IFN0cmVhbVB1bXBlcihwcm9jLmdldEVy cm9yU3RyZWFtKCksICJlcnJvciIsIHByb2plY3QsIGZvcyk7DQotDQotICAg ICAgICAgICAgLy8gc3RhcnRzIHB1bXBpbmcgYXdheSB0aGUgZ2VuZXJhdGVk IG91dHB1dC9lcnJvcg0KLSAgICAgICAgICAgIGlucHV0UHVtcGVyLnN0YXJ0 KCk7DQotICAgICAgICAgICAgZXJyb3JQdW1wZXIuc3RhcnQoKTsNCi0NCi0g ICAgICAgICAgICAvLyBXYWl0IGZvciBldmVyeXRoaW5nIHRvIGZpbmlzaA0K LSAgICAgICAgICAgIHByb2Mud2FpdEZvcigpOw0KLSAgICAgICAgICAgIGlu cHV0UHVtcGVyLmpvaW4oKTsNCi0gICAgICAgICAgICBlcnJvclB1bXBlci5q b2luKCk7DQotICAgICAgICAgICAgcHJvYy5kZXN0cm95KCk7DQotDQotICAg ICAgICAgICAgLy8gY2xvc2UgdGhlIG91dHB1dCBmaWxlIGlmIHJlcXVpcmVk DQotICAgICAgICAgICAgaWYgKGZvcyAhPSBudWxsKSBmb3MuY2xvc2UoKTsN Ci0NCi0gICAgICAgICAgICAvLyBjaGVjayBpdHMgZXhpdCB2YWx1ZQ0KLSAg ICAgICAgICAgIGVyciA9IHByb2MuZXhpdFZhbHVlKCk7DQotICAgICAgICAg ICAgaWYgKGVyciAhPSAwKSB7DQotICAgICAgICAgICAgICAgIHByb2plY3Qu bG9nKCJSZXN1bHQ6ICIgKyBlcnIsICJleGVjIiwgUHJvamVjdC5NU0dfRVJS KTsNCisgICAgICAgICAgICAgICAgRGlyZWN0b3J5U2Nhbm5lciBkcyA9IGdl dERpcmVjdG9yeVNjYW5uZXIoc3JjRGlyKTsNCisgICAgICAgICAgICAgICAg U3RyaW5nW10gZmlsZXMgPSBkcy5nZXRJbmNsdWRlZEZpbGVzKCk7DQorICAg ICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIg YXJnRmlsZXMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7DQorICAgICAgICAgICAg ICAgIFN0cmluZyBmaWxlc2VwID0gU3lzdGVtLmdldFByb3BlcnR5KCJmaWxl LnNlcGFyYXRvciIpOw0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7DQorICAgICAgICAgICAgICAg ICAgYXJnRmlsZXMuYXBwZW5kKCIgIikuYXBwZW5kKHNyY0RpcikuYXBwZW5k KGZpbGVzZXApLmFwcGVuZChmaWxlc1tpXSk7DQorICAgICAgICAgICAgICAg IH0NCisgICAgICAgICAgICAgICAgcHJvamVjdC5sb2codGhpcy5jb21tYW5k KyIgaW4gIitkaXIuZ2V0QWJzb2x1dGVQYXRoKCkrIiBmb3IgIitmaWxlcy5s ZW5ndGgrIiBmaWxlcy4iLCAiZXhlYyIsIFByb2plY3QuTVNHX0lORk8pOyAg ICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgY29tbWFuZCArPSBh cmdGaWxlcy50b1N0cmluZygpOw0KKyAgICAgICAgICAgICAgICBwcm9qZWN0 LmxvZyhjb21tYW5kLCAiZXhlYyIsIFByb2plY3QuTVNHX1ZFUkJPU0UpOw0K KyAgICAgICAgICAgICAgICBlcnIgPSBleGVjdXRlQ29tbWFuZChjb21tYW5k KTsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9IGNhdGNoIChJT0V4Y2Vw dGlvbiBpb2UpIHsNCiAgICAgICAgICAgICB0aHJvdyBuZXcgQnVpbGRFeGNl cHRpb24oIkVycm9yIGV4ZWM6ICIgKyBjb21tYW5kICk7DQpAQCAtMTQ3LDgg KzEzNiw1MyBAQA0KICAgICAgICAgcmV0dXJuIGVycjsNCiAgICAgfQ0KIA0K KyAgICAvKiogRXhlY3V0ZXMgKGZvcmtzKSBhIGdpdmVuIGNvbW1hbmQsIHdh aXRzIGZvciByZXN1bHRzLCBhbmQgY2xlYW4gdXAuICovDQorICAgIHByaXZh dGUgaW50IGV4ZWN1dGVDb21tYW5kKFN0cmluZyBjb21tYW5kKSB0aHJvd3Mg SU9FeGNlcHRpb24sIEludGVycnVwdGVkRXhjZXB0aW9uIHsNCisgICAgICAN CisgICAgICAgICAgaW50IGVyciA9IC0xOyAvLyBhc3N1bWUgdGhlIHdvcnN0 DQorDQorICAgICAgICAgIC8vIGV4ZWMgY29tbWFuZCBvbiBzeXN0ZW0gcnVu dGltZQ0KKyAgICAgICAgICBQcm9jZXNzIHByb2MgPSBSdW50aW1lLmdldFJ1 bnRpbWUoKS5leGVjKGNvbW1hbmQpOw0KKyAgICAgICAgICANCisgICAgICAg ICAgUHJpbnRXcml0ZXIgZm9zPW51bGw7DQorICAgICAgICAgIGlmKCBvdXQh PW51bGwgKSAgew0KKyAgICAgICAgICAgICAgZm9zPW5ldyBQcmludFdyaXRl ciggbmV3IEZpbGVXcml0ZXIoIG91dCApICk7DQorICAgICAgICAgICAgICBw cm9qZWN0LmxvZygiT3V0cHV0IHJlZGlyZWN0ZWQgdG8gIiArIG91dCwgUHJv amVjdC5NU0dfVkVSQk9TRSk7DQorICAgICAgICAgIH0NCisNCisgICAgICAg ICAgLy8gY29weSBpbnB1dCBhbmQgZXJyb3IgdG8gdGhlIG91dHB1dCBzdHJl YW0NCisgICAgICAgICAgU3RyZWFtUHVtcGVyIGlucHV0UHVtcGVyID0NCisg ICAgICAgICAgICBuZXcgU3RyZWFtUHVtcGVyKHByb2MuZ2V0SW5wdXRTdHJl YW0oKSwgImV4ZWMiLCBwcm9qZWN0LCBmb3MpOw0KKyAgICAgICAgICBTdHJl YW1QdW1wZXIgZXJyb3JQdW1wZXIgPQ0KKyAgICAgICAgICAgIG5ldyBTdHJl YW1QdW1wZXIocHJvYy5nZXRFcnJvclN0cmVhbSgpLCAiZXJyb3IiLCBwcm9q ZWN0LCBmb3MpOw0KKyAgICAgICAgICANCisgICAgICAgICAgLy8gc3RhcnRz IHB1bXBpbmcgYXdheSB0aGUgZ2VuZXJhdGVkIG91dHB1dC9lcnJvcg0KKyAg ICAgICAgICBpbnB1dFB1bXBlci5zdGFydCgpOw0KKyAgICAgICAgICBlcnJv clB1bXBlci5zdGFydCgpOw0KKyAgICAgICAgICANCisgICAgICAgICAgLy8g V2FpdCBmb3IgZXZlcnl0aGluZyB0byBmaW5pc2gNCisgICAgICAgICAgcHJv Yy53YWl0Rm9yKCk7DQorICAgICAgICAgIGlucHV0UHVtcGVyLmpvaW4oKTsN CisgICAgICAgICAgZXJyb3JQdW1wZXIuam9pbigpOw0KKyAgICAgICAgICBw cm9jLmRlc3Ryb3koKTsNCisgICAgICAgICAgDQorICAgICAgICAgIC8vIGNs b3NlIHRoZSBvdXRwdXQgZmlsZSBpZiByZXF1aXJlZA0KKyAgICAgICAgICBp ZiAoZm9zICE9IG51bGwpIGZvcy5jbG9zZSgpOw0KKw0KKyAgICAgICAgICAv LyBjaGVjayBpdHMgZXhpdCB2YWx1ZQ0KKyAgICAgICAgICBlcnIgPSBwcm9j LmV4aXRWYWx1ZSgpOw0KKyAgICAgICAgICBpZiAoZXJyICE9IDApIHsNCisg ICAgICAgICAgICBwcm9qZWN0LmxvZygiUmVzdWx0OiAiICsgZXJyLCAiZXhl YyIsIFByb2plY3QuTVNHX0VSUik7DQorICAgICAgICAgIH0NCisgICAgICAg ICAgcmV0dXJuIGVycjsNCisgICAgfQ0KKw0KICAgICBwdWJsaWMgdm9pZCBz ZXREaXIoU3RyaW5nIGQpIHsNCiAgICAgICAgIHRoaXMuZGlyID0gcHJvamVj dC5yZXNvbHZlRmlsZShkKTsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9p ZCBzZXRTcmMoU3RyaW5nIGQpIHsNCisgICAgICAgIHRoaXMuc3JjRGlyID0g cHJvamVjdC5yZXNvbHZlRmlsZShkKTsNCiAgICAgfQ0KIA0KICAgICBwdWJs aWMgdm9pZCBzZXRPcyhTdHJpbmcgb3MpIHsNCg== --1351350347-202775212-959294592=:7333--