3 releases
0.1.2 | Feb 24, 2021 |
---|---|
0.1.1 | Feb 24, 2021 |
0.1.0 | Feb 24, 2021 |
#5 in #mode
3,866 downloads per month
Used in 5 crates
(3 directly)
67KB
1.5K
SLoC
Decode Unix file mode bits, change them and apply them to files.
All file type, special and protection bits described in sys/stat.h
are represented.
The Mode
object can represent a file mode partially by the use of a bitmask. Only modified bits will be changed in the target file.
Modifications specific only to directories (search) are handled correctly.
use std::path::Path;
use file_mode::{ModePath, User};
let mode = Path::new("LICENSE").mode().unwrap();
// query bits
assert!(mode.file_type().unwrap().is_regular_file());
assert!(mode.user_protection(User::Owner).is_read_set());
assert!(mode.user_protection(User::Group).is_write_set());
assert!(!mode.user_protection(User::Other).is_execute_set());
// print as string
println!("{}", mode); // -rw-rw-r--
assert_eq!(&mode.to_string(), "-rw-rw-r--");
// apply chmod string
Path::new("LICENSE").set_mode("u+r,g+u").unwrap();
See module level documentation on docs.rs for more examples.
Dependencies
~210KB