Files
empeve/Cargo.toml
vikingowl 6be61df8a0 fix: address code quality issues, validation gaps, and add test coverage
Phase 1 - Code Quality:
- Rename script/script.rs to script/types.rs (module inception fix)
- Apply Clippy lint fixes (is_none_or, is_some_and, char patterns, etc.)
- Implement FromStr for CatalogFile and Category
- Add filtered_targets() and filtered_repos() helpers to Config

Phase 2 - Validation & Error Handling:
- Add validate_repo_identifier() for GitHub shorthand validation
- Fix first-run setup to fail gracefully if no targets configured
- Improve import to collect failures and only save on success
- Add AssetInstallResult for detailed install failure tracking
- Fix lockfile timestamp documentation (Unix epoch, not RFC 3339)
- Add comprehensive RevType heuristics documentation
- Add checkout warning when local modifications will be discarded

Phase 3 - Test Coverage:
- Add tempfile, assert_cmd, predicates dev dependencies
- Add security tests (symlink boundaries, copy mode)
- Add git operations tests (init, head_commit, RevType parsing)
- Add lockfile tests (roundtrip, lock/get operations)
- Add CLI integration tests (help, validation, duplicates)
- Add config validation tests for new helper methods

All 48 tests pass, clippy clean, release build verified.
2026-01-26 10:19:10 +01:00

43 lines
803 B
TOML

[package]
name = "empeve"
version = "0.1.0"
edition = "2021"
description = "Plugin manager for mpv"
authors = ["vikingowl"]
license = "MIT"
repository = "https://somegit.dev/vikingowl/empeve"
keywords = ["mpv", "scripts", "package-manager", "cli"]
categories = ["command-line-utilities", "multimedia"]
[dependencies]
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
toml = "0.8"
git2 = "0.19"
dirs = "5"
thiserror = "1"
walkdir = "2"
colored = "2"
indicatif = "0.17"
[dev-dependencies]
tempfile = "3"
assert_cmd = "2"
predicates = "3"
[features]
default = []
tui = ["ratatui", "crossterm"]
[dependencies.ratatui]
version = "0.28"
optional = true
[dependencies.crossterm]
version = "0.28"
optional = true
[[bin]]
name = "empeve"
path = "src/main.rs"