e2p-fileflags

Crates.ioe2p-fileflags
lib.rse2p-fileflags
version0.1.0
sourcesrc
created_at2023-03-19 12:55:58.008985
updated_at2023-03-19 12:55:58.008985
descriptionRead and set ext2/ext3/ext4/btrfs/xfs/f2fs file flags like with lsattr and chattr from e2fsprogs
homepagehttps://github.com/michaellass/e2p-fileflags/
repositoryhttps://github.com/michaellass/e2p-fileflags.git
max_upload_size
id814396
size17,068
Michael Lass (michaellass)

documentation

README

e2p-fileflags: Read and set ext2/ext3/ext4/btrfs/xfs/f2fs file flags like with lsattr and chattr from e2fsprogs

CI license crates.io docs.rs

e2p-fileflags provides access to file flags on Linux. Which flags exist, depends on the file system used. This crate uses libe2p in the background, which originates from e2fsprogs and supports flags for ext2, ext3, ext4, btrfs, xfs and f2fs file systems.

Examples

use std::fs::File;
use e2p_fileflags::{FileFlags,Flags};

let f = File::create("./foo/bar.txt")?;
f.set_flags(Flags::NOCOW)?;
println!("Flags: {:?}", f.flags()?);
use std::path::Path;
use e2p_fileflags::{FileFlags,Flags};

let p = Path::new("./foo/bar.txt");
p.set_flags(Flags::NOCOW)?;
println!("Flags: {:?}", p.flags()?);

Requirements

  • libe2p, including development headers. Right now, libe2p in version 1.42.4 is required. If you need support for older versions, please open an issue and state the required version.

    Linux distributions typically packages those under one of the following names:

    • e2fsprogs(-dev)
    • e2fslibs(-dev)
    • libext2fs(-dev)
  • libclang is required for building the e2p-sys dependency. This is sometimes packaged as libclang1.

Note that after an update of libe2p, you may need to rebuild e2p-sys and this crate to get access to any newly introduced flags.

Commit count: 37

cargo fmt