using System;
namespace Packaging.Targets.IO
{
///
/// Represents the Unix-style file permission flags. Taken from <sys/stat.h>.
///
///
[Flags]
public enum LinuxFileMode : ushort
{
///
/// Set user ID on execution
///
S_ISUID = 0x0800,
///
/// Set group ID on execution
///
S_ISGID = 0x0400,
///
/// Save swapped text after use (sticky).
///
S_ISVTX = 0x0200,
///
/// Read by owner
///
S_IRUSR = 0x0100,
///
/// Write by owner
///
S_IWUSR = 0x0080,
///
/// Execute by owner
///
S_IXUSR = 0x0040,
///
/// Read by group
///
S_IRGRP = 0x0020,
///
/// Write by group
///
S_IWGRP = 0x0010,
///
/// Execute by group
///
S_IXGRP = 0x0008,
///
/// Read by other
///
S_IROTH = 0x0004,
///
/// Write by other
///
S_IWOTH = 0x0002,
///
/// Execute by other
///
S_IXOTH = 0x0001,
///
/// The file is a named pipe (fifo).
///
S_IFIFO = 0x1000, // 010000 in octal
///
/// The file is a character special device.
///
S_IFCHR = 0x2000, // 0020000 in octal
///
/// The file is a directory.
///
S_IFDIR = 0x4000, // 0040000 in octal
///
/// The file is a block special device.
///
S_IFBLK = 0x6000, // 0060000 in octal
///
/// The file is a regular file.
///
S_IFREG = 0x8000, // 0100000 in octal
///
/// The file is a symbolic link.
///
S_IFLNK = 0xA000, // 0120000 in octal
///
/// The file is a Unix socket.
///
S_IFSOCK = 0xC000 // 0140000 in octal
}
}