Rob Oxspring wrote:
> Why should Chmod.java and Attrib.java force an operating system
> precondition?

Taking this a step further, why couldn't this be handled in a more general-purpose, inclusive manner? Define attributes that can apply to files, actions for each platform to which they apply, and a factory that translates them appropriately. Ignore (or warn about) attributes that aren't supported. It then isn't a matter of "what native tool can I use on platform X", but "what does platform X support". (I haven't looked much at the VFS proposals for Ant2, but I'm guessing they handle things this way.)

As a simple example, take something like

<set-permissions
  file="foo"
  executable="true"
  readonly="true"
  hidden="true"
/>

On Windows (which doesn't have "executable" files) this would translate to

  attrib +r +h foo

On UNIX (which doesn't have "hidden" files) it would become

  chmod 0555 foo

Mac probably doesn't have executable or hidden files, so it would just set the read-only attribute. Similarly for Netware, Be, etc.

If more fine-grained control is necessary, either use "exec" for your platform of choice or add user-specified attributes like <java>'s <jvmargs>.

Peter J.


Rob Oxspring wrote:
Why should Chmod.java and Attrib.java force an operating system
precondition?

    protected boolean isValidOs() {
        return Os.isFamily("unix") && super.isValidOs();
    }

It is simply not true that the os family must be unix for the task to run.
"unix" should probably be a default value, but the os parameter should be
enhanced to allow a list of valid families e.g. "unix, windows" thereby
allowing chmod to be used under windows and unix based builds.

Rob




-----Original Message-----
From: Jesse Stockall [mailto:[EMAIL PROTECTED]
Sent: Friday, January 25, 2002 2:13 PM
To: ant-dev
Subject: [SUBMIT] Attrib task (chmod for Windows)


Hi

Here is a a new Task for changing file attributes on Windows. It is
based on the Chmod task.




-- Jesse Stockall | Tel: 1+ 613.599.2441 ext. 243 CRYPTOCard Corporation | Fax: 1+ 613.599.2442 Suite 304, 300 March Rd. | email: [EMAIL PROTECTED] Ottawa, ON, Canada K2K 2E2 | web: www.cryptocard.com ---------------------------------------------------------------------

-- fix, n., v. What one does when a problem has been reported too many times to be ignored. --The New Hacker's Dictionary, 3rd ed.


-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



Reply via email to