whyno-cli 0.5.0

Linux permission debugger
//! Display names for check layers — padded for checklist, short for JSON/explain.

use whyno_core::checks::{CoreLayer, MacLayer};

/// Lowercase display name for an operation.
pub fn operation_name(op: whyno_core::operation::Operation) -> String {
    format!("{op:?}").to_lowercase()
}

pub fn padded(layer: CoreLayer) -> &'static str {
    match layer {
        CoreLayer::Mount => "Mount options    ",
        CoreLayer::FsFlags => "Filesystem flags",
        CoreLayer::Traversal => "Path traversal  ",
        CoreLayer::Dac => "DAC permissions ",
        CoreLayer::Acl => "POSIX ACLs      ",
        CoreLayer::Metadata => "Metadata        ",
        _ => "Unknown         ",
    }
}

pub fn short(layer: CoreLayer) -> &'static str {
    match layer {
        CoreLayer::Mount => "mount",
        CoreLayer::FsFlags => "fsflags",
        CoreLayer::Traversal => "traversal",
        CoreLayer::Dac => "dac",
        CoreLayer::Acl => "acl",
        CoreLayer::Metadata => "metadata",
        _ => "unknown",
    }
}

pub fn padded_mac(layer: MacLayer) -> &'static str {
    match layer {
        MacLayer::SeLinux => "SELinux         ",
        MacLayer::AppArmor => "AppArmor        ",
        _ => "Unknown MAC     ",
    }
}

pub fn short_mac(layer: MacLayer) -> &'static str {
    match layer {
        MacLayer::SeLinux => "selinux",
        MacLayer::AppArmor => "apparmor",
        _ => "unknown",
    }
}