summaryrefslogtreecommitdiffstats
path: root/src/file.rs
diff options
context:
space:
mode:
authorBen S <ogham@bsago.me>2015-05-03 11:55:10 +0100
committerBen S <ogham@bsago.me>2015-05-03 11:55:10 +0100
commitd7a297449453d29fc0342611232225a57a5b9a86 (patch)
tree5c8cb2b164902f5586f58138129a1eb3a967cf58 /src/file.rs
parentbe8a48ab7220c6c97e191a4d3b87598a7bf931f1 (diff)
Permissions are back!
Diffstat (limited to 'src/file.rs')
-rw-r--r--src/file.rs33
1 files changed, 11 insertions, 22 deletions
diff --git a/src/file.rs b/src/file.rs
index bdefbb2..02a1f81 100644
--- a/src/file.rs
+++ b/src/file.rs
@@ -2,6 +2,7 @@ use std::ascii::AsciiExt;
use std::env::current_dir;
use std::fs;
use std::io;
+use std::os::unix;
use std::os::unix::fs::PermissionsExt;
use std::path::{Component, Path, PathBuf};
@@ -409,15 +410,15 @@ impl<'a> File<'a> {
let string = ANSIStrings(&[
self.type_char(),
- File::permission_bit(bits, Permission::UserRead, "r", Yellow.bold()),
- File::permission_bit(bits, Permission::UserWrite, "w", Red.bold()),
- File::permission_bit(bits, Permission::UserExecute, "x", executable_colour),
- File::permission_bit(bits, Permission::GroupRead, "r", Yellow.normal()),
- File::permission_bit(bits, Permission::GroupWrite, "w", Red.normal()),
- File::permission_bit(bits, Permission::GroupExecute, "x", Green.normal()),
- File::permission_bit(bits, Permission::OtherRead, "r", Yellow.normal()),
- File::permission_bit(bits, Permission::OtherWrite, "w", Red.normal()),
- File::permission_bit(bits, Permission::OtherExecute, "x", Green.normal()),
+ File::permission_bit(bits, unix::fs::USER_READ, "r", Yellow.bold()),
+ File::permission_bit(bits, unix::fs::USER_WRITE, "w", Red.bold()),
+ File::permission_bit(bits, unix::fs::USER_EXECUTE, "x", executable_colour),
+ File::permission_bit(bits, unix::fs::GROUP_READ, "r", Yellow.normal()),
+ File::permission_bit(bits, unix::fs::GROUP_WRITE, "w", Red.normal()),
+ File::permission_bit(bits, unix::fs::GROUP_EXECUTE, "x", Green.normal()),
+ File::permission_bit(bits, unix::fs::OTHER_READ, "r", Yellow.normal()),
+ File::permission_bit(bits, unix::fs::OTHER_WRITE, "w", Red.normal()),
+ File::permission_bit(bits, unix::fs::OTHER_EXECUTE, "x", Green.normal()),
self.attribute_marker()
]).to_string();
@@ -425,7 +426,7 @@ impl<'a> File<'a> {
}
/// Helper method for the permissions string.
- fn permission_bit(bits: u16, bit: Permission, character: &'static str, style: Style) -> ANSIString<'static> {
+ fn permission_bit(bits: u16, bit: u16, character: &'static str, style: Style) -> ANSIString<'static> {
let bi32 = bit as u16;
if bits & bi32 == bi32 {
style.paint(character)
@@ -512,18 +513,6 @@ fn ext<'a>(name: &'a str) -> Option<String> {
name.rfind('.').map(|p| name[p+1..].to_ascii_lowercase())
}
-enum Permission {
- UserRead = 0o400,
- UserWrite = 0o200,
- UserExecute = 0o100,
- GroupRead = 0o040,
- GroupWrite = 0o020,
- GroupExecute = 0o010,
- OtherRead = 0o004,
- OtherWrite = 0o002,
- OtherExecute = 0o001,
-}
-
#[cfg(broken_test)]
pub mod test {
pub use super::*;