Skip to content

Commit

Permalink
improve file mode formatting #105
Browse files Browse the repository at this point in the history
  • Loading branch information
jhspetersson committed Oct 5, 2021
1 parent 6fd8400 commit 5727637
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions src/mode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ pub fn format_mode(mode: u32) -> String {
fn get_mode_unix(mode: u32) -> String {
let mut s = String::new();

if mode_is_block_device(mode) {
if mode_is_link(mode) {
s.push('l')
} else if mode_is_block_device(mode) {
s.push('b')
} else if mode_is_char_device(mode) {
s.push('c')
} else if mode_is_link(mode) {
s.push('l')
} else if mode_is_socket(mode) {
s.push('s')
} else if mode_is_pipe(mode) {
Expand Down Expand Up @@ -279,7 +279,7 @@ pub fn suid_bit_set(meta: &Metadata) -> bool {
}

pub fn mode_suid(mode: u32) -> bool {
mode & S_IFMT & S_ISUID == S_IFMT & S_ISUID
mode & S_ISUID == S_ISUID
}

pub fn sgid_bit_set(meta: &Metadata) -> bool {
Expand All @@ -290,12 +290,12 @@ pub fn sgid_bit_set(meta: &Metadata) -> bool {
}

pub fn mode_sgid(mode: u32) -> bool {
mode & S_IFMT & S_ISGID == S_IFMT & S_ISGID
mode & S_ISGID == S_ISGID
}

#[cfg(unix)]
pub fn mode_sticky(mode: u32) -> bool {
mode & S_IFMT & S_ISVTX == S_IFMT & S_ISVTX
mode & S_ISVTX == S_ISVTX
}

pub fn is_pipe(meta: &Metadata) -> bool {
Expand All @@ -306,7 +306,7 @@ pub fn is_pipe(meta: &Metadata) -> bool {
}

pub fn mode_is_pipe(mode: u32) -> bool {
mode & S_IFMT & S_IFIFO == S_IFMT & S_IFIFO
mode & S_IFIFO == S_IFIFO
}

pub fn is_char_device(meta: &Metadata) -> bool {
Expand All @@ -317,7 +317,7 @@ pub fn is_char_device(meta: &Metadata) -> bool {
}

pub fn mode_is_char_device(mode: u32) -> bool {
mode & S_IFMT & S_IFCHR == S_IFMT & S_IFCHR
mode & S_IFCHR == S_IFCHR
}

pub fn is_block_device(meta: &Metadata) -> bool {
Expand All @@ -328,17 +328,17 @@ pub fn is_block_device(meta: &Metadata) -> bool {
}

pub fn mode_is_block_device(mode: u32) -> bool {
mode & S_IFMT & S_IFBLK == S_IFMT & S_IFBLK
mode & S_IFBLK == S_IFBLK
}

#[cfg(unix)]
pub fn mode_is_directory(mode: u32) -> bool {
mode & S_IFMT & S_IFDIR == S_IFMT & S_IFDIR
mode & S_IFDIR == S_IFDIR
}

#[cfg(unix)]
pub fn mode_is_link(mode: u32) -> bool {
mode & S_IFMT & S_IFLNK == S_IFMT & S_IFLNK
mode & S_IFLNK == S_IFLNK
}

pub fn is_socket(meta: &Metadata) -> bool {
Expand All @@ -349,7 +349,7 @@ pub fn is_socket(meta: &Metadata) -> bool {
}

pub fn mode_is_socket(mode: u32) -> bool {
mode & S_IFMT & S_IFSOCK == S_IFMT & S_IFSOCK
mode & S_IFSOCK == S_IFSOCK
}

const S_IRUSR: u32 = 0o400;
Expand All @@ -369,7 +369,6 @@ const S_ISGID: u32 = 0o2000;
#[cfg(unix)]
const S_ISVTX: u32 = 0o1000;

const S_IFMT: u32 = 0o170000;
const S_IFBLK: u32 = 0o60000;
#[cfg(unix)]
const S_IFDIR: u32 = 0o40000;
Expand Down

0 comments on commit 5727637

Please sign in to comment.