Class SetPermissions

All Implemented Interfaces:
Cloneable

public class SetPermissions extends Task
Sets PosixFilePermissions for resources.

This task provides a subset of Chmod's and Attrib's abilities in less platform dependent way.

It requires a file system that supports PosixFilePermissions for its full potential. It can optionally fall back to DosFilePermissions (only changing the readonly state) on file systems that don't support POSIX permissions. See SetPermissions.NonPosixMode

Since:
Ant 1.10.0
  • Constructor Details

    • SetPermissions

      public SetPermissions()
  • Method Details

    • setPermissions

      public void setPermissions(String perms)
      Adds permissions as a comma separated list.
      Parameters:
      perms - comma separated list of names of PosixFilePermissions.
    • setMode

      public void setMode(String octalString)
      A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion;
      Parameters:
      octalString - a String value
    • setFailOnError

      public void setFailOnError(boolean failonerror)
      Set whether to fail when errors are encountered. If false, note errors to the output but keep going. Default is true.

      Only applies to IO and SecurityExceptions, see setNonPosixMode(org.apache.tools.ant.taskdefs.SetPermissions.NonPosixMode) for ways to deal with file-systems that don't support PosixPermissions.

      Parameters:
      failonerror - true or false.
    • setNonPosixMode

      public void setNonPosixMode(SetPermissions.NonPosixMode m)
      Set what to do if changing the permissions of a file is not possible because the file-system doesn't support POSIX file permissions.

      The default is SetPermissions.NonPosixMode.fail.

      Parameters:
      m - what to do if changing the permissions of a file is not possible
    • add

      public void add(ResourceCollection rc)
      Adds a collection of resources to set permissions on.
      Parameters:
      rc - a resource collection
    • execute

      public void execute()
      Description copied from class: Task
      Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.
      Overrides:
      execute in class Task