Skip to main content

just/
platform_interface.rs

1use super::*;
2
3pub(crate) trait PlatformInterface {
4  /// translate path from "native" path to path interpreter expects
5  fn convert_native_path(config: &Config, working_directory: &Path, path: &Path) -> FunctionResult;
6
7  /// install handler, may only be called once
8  fn install_signal_handler<T: Fn(Signal) + Send + 'static>(handler: T) -> RunResult<'static>;
9
10  /// construct command equivalent to running script at `path` with shebang
11  /// line `shebang`
12  fn make_shebang_command(
13    config: &Config,
14    path: &Path,
15    shebang: Shebang,
16    working_directory: Option<&Path>,
17  ) -> Result<Command, OutputError>;
18
19  /// set the execute permission on file pointed to by `path`
20  fn set_execute_permission(path: &Path) -> io::Result<()>;
21
22  /// extract signal from process exit status
23  fn signal_from_exit_status(exit_status: ExitStatus) -> Option<i32>;
24}