refactor: apply CLAUDE.md code quality improvements and add packaging
- Add #![forbid(unsafe_code)] to main.rs (issue #3) - Replace raw ANSI escape codes with owo-colors crate (issue #2) - Replace manual HOME path construction with dirs::home_dir() (issue #5) - Ship umutray.service as a static file; service::install() substitutes the binary path at install time instead of generating the unit at runtime - Add packaging/PKGBUILD following Arch Rust package guidelines - Add CLAUDE.md tracking refactor tasks - setup.rs: clean up downloaded temp files on abort/back, save launcher to config only after successful install, auto-start download when a preset has an installer_url - util.rs: add pick_folder() using zenity/kdialog subprocesses (no rfd) - config.rs: populate installer_url for all 6 built-in presets with official download URLs - Document the Option<Option<Vec<String>>> gamescope pattern at main.rs:307 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-7
@@ -1,5 +1,6 @@
|
||||
use crate::config::{Config, Launcher};
|
||||
use anyhow::Result;
|
||||
use owo_colors::OwoColorize;
|
||||
use std::os::unix::fs::MetadataExt;
|
||||
use std::path::Path;
|
||||
use std::process::{Command, Stdio};
|
||||
@@ -50,18 +51,17 @@ pub fn run(config: &Config, name: Option<&str>) -> Result<()> {
|
||||
if !c.pass {
|
||||
issues += 1;
|
||||
}
|
||||
let (sym, col, rst) = if c.pass {
|
||||
("✓", "\x1b[1;32m", "\x1b[0m")
|
||||
if c.pass {
|
||||
println!(" {} {:24} {}", "✓".green().bold(), c.label, c.detail);
|
||||
} else {
|
||||
("✗", "\x1b[1;31m", "\x1b[0m")
|
||||
};
|
||||
println!(" {col}{sym}{rst} {:24} {}", c.label, c.detail);
|
||||
println!(" {} {:24} {}", "✗".red().bold(), c.label, c.detail);
|
||||
}
|
||||
}
|
||||
println!();
|
||||
if issues == 0 {
|
||||
println!(" \x1b[1;32mAll checks passed.\x1b[0m");
|
||||
println!(" {}", "All checks passed.".green().bold());
|
||||
} else {
|
||||
println!(" \x1b[1;31m{issues} issue(s) found — see ✗ items above.\x1b[0m");
|
||||
println!(" {}", format!("{issues} issue(s) found — see ✗ items above.").red().bold());
|
||||
}
|
||||
println!();
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user