use crate::config; use anyhow::Result; use std::time::SystemTime; const TIPS: &[&str] = &[ "sysop info — show which tool fills a role and where its config lives", "sysop services — s6-rc service health", "sysop wifi — network connections", "sysop storage — ZFS pool state", "sysop logs — structured logs for a service", "sysop help — list all sysop commands", ]; pub fn status() -> Result { let cfg = config::load()?; let state = if cfg.motd.enabled { "on" } else { "off" }; println!("motd: {state}"); println!("config: {}", config::path().display()); Ok(0) } pub fn set(enabled: bool) -> Result { let mut cfg = config::load()?; cfg.motd.enabled = enabled; config::save(&cfg)?; println!("motd: {}", if enabled { "on" } else { "off" }); Ok(0) } pub fn print() -> Result { let cfg = config::load()?; if !cfg.motd.enabled { return Ok(0); } let bucket = SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) .map(|d| d.as_secs() / 60) .unwrap_or(0) as usize; let idx = bucket % TIPS.len(); println!(); println!(" {}", TIPS[idx]); Ok(0) }