whyno-cli 0.4.0

Linux permission debugger
//! Display names for check layers.
//!
//! Padded names for aligned checklist output, short names for
//! JSON keys and explain mode. separate functions for MAC layers.

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

/// Padded layer name for aligned checklist output.
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         ",
    }
}

/// Short lowercase name for JSON and explain mode.
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",
    }
}

/// Padded MAC layer name for aligned checklist output.
pub fn padded_mac(layer: MacLayer) -> &'static str {
    match layer {
        MacLayer::SeLinux => "SELinux         ",
        MacLayer::AppArmor => "AppArmor        ",
        _ => "Unknown MAC     ",
    }
}

/// Short lowercase MAC layer name for JSON and explain mode.
pub fn short_mac(layer: MacLayer) -> &'static str {
    match layer {
        MacLayer::SeLinux => "selinux",
        MacLayer::AppArmor => "apparmor",
        _ => "unknown",
    }
}