apple_clis/spctl/
assess.rs

1use 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/// See <https://forums.developer.apple.com/forums/thread/130379>
28#[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}