use std::env; use gentoo_utils::{atom::Atom, repo::Repo, useflag::UseFlag}; use itertools::Itertools; fn main() { let repo_path = env::args().nth(1).expect("expected path to mock repo"); let repo = Repo::new(&repo_path).expect("failed to open repo"); let profile = repo .evaluate_profile("features/emacs/gui") .expect("failed to evaluate profile"); assert_eq!( profile.make_defaults()["USE"] .split_ascii_whitespace() .sorted() .collect::>(), vec!["base", "emacs"] ); assert_eq!( profile .packages() .iter() .map(Atom::to_string) .collect::>(), vec!["app-editors/emacs"] ); let emacs_package_use = profile .package_use() .iter() .find_map(|(atom, flags)| { if atom.clone().into_cp().to_string() == "app-editors/emacs" { Some(flags) } else { None } }) .expect("failed to read package.use settings for app-editors/emacs"); assert_eq!( emacs_package_use .iter() .map(UseFlag::to_string) .collect::>(), vec!["default", "gui"] ); assert_eq!( profile .use_force() .iter() .map(UseFlag::to_string) .collect::>(), vec!["default", "gui"] ); }