apple_clis/spctl/
assess.rs1use crate::prelude::*;
2
3use super::SpctlCLIInstance;
4
5pub use output::*;
6mod output;
7
8impl SpctlCLIInstance {
9 #[instrument(skip_all, ret)]
10 #[doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/docs/inline/TODO.md"))]
11 pub fn assess(&self, path: impl AsRef<Utf8Path>, assess_type: AssessType) -> Result<AssessOutput> {
12 AssessOutput::from_bossy_result(
13 self
14 .bossy_command()
15 .with_arg("--asses")
16 .with_args(["--type", assess_type.into_type()])
17 .with_arg(path.as_ref())
18 .run_and_wait_for_output()
19 )
20 }
21
22 pub fn assess_app(&self, path: impl AsRef<Utf8Path>) -> Result<AssessOutput> {
23 self.assess(path, AssessType::App)
24 }
25}
26
27#[derive(Debug)]
29pub enum AssessType {
30 App,
31 DiskImage,
32 InstallerPackage,
33}
34
35impl AssessType {
36 fn into_type(self) -> &'static str {
37 match self {
38 AssessType::App => "exec",
39 AssessType::DiskImage => "open",
40 AssessType::InstallerPackage => "install",
41 }
42 }
43}