feat: Migrate SAL to Cargo workspace
- Migrate individual modules to independent crates - Refactor dependencies for improved modularity - Update build system and testing infrastructure - Update documentation to reflect new structure
This commit is contained in:
@@ -9,23 +9,19 @@ license = "Apache-2.0"
|
||||
|
||||
[dependencies]
|
||||
# Core dependencies for process management
|
||||
tempfile = "3.5"
|
||||
rhai = { version = "1.12.0", features = ["sync"] }
|
||||
anyhow = "1.0.98"
|
||||
tempfile = { workspace = true }
|
||||
rhai = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
|
||||
# SAL dependencies
|
||||
sal-text = { path = "../text" }
|
||||
|
||||
# Optional features for specific OS functionality
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
nix = "0.30.1"
|
||||
nix = { workspace = true }
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.61.1", features = [
|
||||
"Win32_Foundation",
|
||||
"Win32_System_Threading",
|
||||
"Win32_Storage_FileSystem",
|
||||
] }
|
||||
windows = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3.5"
|
||||
tempfile = { workspace = true }
|
||||
|
@@ -1,22 +1,22 @@
|
||||
//! # SAL Process Package
|
||||
//!
|
||||
//!
|
||||
//! The `sal-process` package provides functionality for managing and interacting with
|
||||
//! system processes across different platforms. It includes capabilities for:
|
||||
//!
|
||||
//!
|
||||
//! - Running commands and scripts
|
||||
//! - Listing and filtering processes
|
||||
//! - Killing processes
|
||||
//! - Checking for command existence
|
||||
//! - Screen session management
|
||||
//!
|
||||
//!
|
||||
//! This package is designed to work consistently across Windows, macOS, and Linux.
|
||||
|
||||
mod run;
|
||||
mod mgmt;
|
||||
mod run;
|
||||
mod screen;
|
||||
|
||||
pub mod rhai;
|
||||
|
||||
pub use run::*;
|
||||
pub use mgmt::*;
|
||||
pub use screen::{new as new_screen, kill as kill_screen};
|
||||
pub use run::*;
|
||||
pub use screen::{kill as kill_screen, new as new_screen};
|
||||
|
@@ -24,7 +24,10 @@ pub fn new(name: &str, cmd: &str) -> Result<()> {
|
||||
script_content.push_str(cmd);
|
||||
|
||||
fs::write(&script_path, script_content)?;
|
||||
fs::set_permissions(&script_path, std::os::unix::fs::PermissionsExt::from_mode(0o755))?;
|
||||
fs::set_permissions(
|
||||
&script_path,
|
||||
std::os::unix::fs::PermissionsExt::from_mode(0o755),
|
||||
)?;
|
||||
|
||||
let screen_cmd = format!("screen -d -m -S {} {}", name, script_path);
|
||||
run_command(&screen_cmd)?;
|
||||
|
Reference in New Issue
Block a user