agcodex_execpolicy/
lib.rs

1#![allow(clippy::type_complexity)]
2#![allow(clippy::too_many_arguments)]
3#[macro_use]
4extern crate starlark;
5
6mod arg_matcher;
7mod arg_resolver;
8mod arg_type;
9mod error;
10mod exec_call;
11mod execv_checker;
12mod opt;
13mod policy;
14mod policy_parser;
15mod program;
16mod sed_command;
17mod valid_exec;
18
19pub use arg_matcher::ArgMatcher;
20pub use arg_resolver::PositionalArg;
21pub use arg_type::ArgType;
22pub use error::Error;
23pub use error::Result;
24pub use exec_call::ExecCall;
25pub use execv_checker::ExecvChecker;
26pub use opt::Opt;
27pub use policy::Policy;
28pub use policy_parser::PolicyParser;
29pub use program::Forbidden;
30pub use program::MatchedExec;
31pub use program::NegativeExamplePassedCheck;
32pub use program::PositiveExampleFailedCheck;
33pub use program::ProgramSpec;
34pub use sed_command::parse_sed_command;
35pub use valid_exec::MatchedArg;
36pub use valid_exec::MatchedFlag;
37pub use valid_exec::MatchedOpt;
38pub use valid_exec::ValidExec;
39
40const DEFAULT_POLICY: &str = include_str!("default.policy");
41
42pub fn get_default_policy() -> starlark::Result<Policy> {
43    let parser = PolicyParser::new("#default", DEFAULT_POLICY);
44    parser.parse()
45}