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:
@@ -81,7 +81,7 @@ impl Error for DownloadError {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::download;
|
||||
* use sal_os::download;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Download a file with no minimum size requirement
|
||||
@@ -242,7 +242,7 @@ pub fn download(url: &str, dest: &str, min_size_kb: i64) -> Result<String, Downl
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::download_file;
|
||||
* use sal_os::download_file;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Download a file with no minimum size requirement
|
||||
@@ -335,7 +335,7 @@ pub fn download_file(url: &str, dest: &str, min_size_kb: i64) -> Result<String,
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::chmod_exec;
|
||||
* use sal_os::chmod_exec;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Make a file executable
|
||||
@@ -413,7 +413,7 @@ pub fn chmod_exec(path: &str) -> Result<String, DownloadError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::download_install;
|
||||
* use sal_os::download_install;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Download and install a .deb package
|
||||
|
50
os/src/fs.rs
50
os/src/fs.rs
@@ -1,13 +1,13 @@
|
||||
use dirs;
|
||||
use libc;
|
||||
use std::error::Error;
|
||||
use std::fmt;
|
||||
use std::fs;
|
||||
use std::io;
|
||||
use std::path::Path;
|
||||
use std::process::Command;
|
||||
use libc;
|
||||
use dirs;
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
use std::os::unix::fs::PermissionsExt;
|
||||
use std::path::Path;
|
||||
use std::process::Command;
|
||||
|
||||
// Define a custom error type for file system operations
|
||||
#[derive(Debug)]
|
||||
@@ -299,7 +299,7 @@ fn copy_internal(src: &str, dest: &str, make_executable: bool) -> Result<String,
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::copy;
|
||||
* use sal_os::copy;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Copy a single file
|
||||
@@ -334,7 +334,7 @@ pub fn copy(src: &str, dest: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::copy_bin;
|
||||
* use sal_os::copy_bin;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Copy a binary
|
||||
@@ -373,7 +373,7 @@ pub fn copy_bin(src: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::exist;
|
||||
* use sal_os::exist;
|
||||
*
|
||||
* if exist("file.txt") {
|
||||
* println!("File exists");
|
||||
@@ -400,7 +400,7 @@ pub fn exist(path: &str) -> bool {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::find_file;
|
||||
* use sal_os::find_file;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let file_path = find_file("/path/to/dir", "*.txt")?;
|
||||
@@ -457,7 +457,7 @@ pub fn find_file(dir: &str, filename: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::find_files;
|
||||
* use sal_os::find_files;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let files = find_files("/path/to/dir", "*.txt")?;
|
||||
@@ -505,7 +505,7 @@ pub fn find_files(dir: &str, filename: &str) -> Result<Vec<String>, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::find_dir;
|
||||
* use sal_os::find_dir;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let dir_path = find_dir("/path/to/parent", "sub*")?;
|
||||
@@ -557,7 +557,7 @@ pub fn find_dir(dir: &str, dirname: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::find_dirs;
|
||||
* use sal_os::find_dirs;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let dirs = find_dirs("/path/to/parent", "sub*")?;
|
||||
@@ -604,7 +604,7 @@ pub fn find_dirs(dir: &str, dirname: &str) -> Result<Vec<String>, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::delete;
|
||||
* use sal_os::delete;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Delete a file
|
||||
@@ -652,7 +652,7 @@ pub fn delete(path: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::mkdir;
|
||||
* use sal_os::mkdir;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let result = mkdir("path/to/new/directory")?;
|
||||
@@ -693,7 +693,7 @@ pub fn mkdir(path: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::file_size;
|
||||
* use sal_os::file_size;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let size = file_size("file.txt")?;
|
||||
@@ -736,7 +736,7 @@ pub fn file_size(path: &str) -> Result<i64, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::rsync;
|
||||
* use sal_os::rsync;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let result = rsync("source_dir/", "backup_dir/")?;
|
||||
@@ -802,7 +802,7 @@ pub fn rsync(src: &str, dest: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::chdir;
|
||||
* use sal_os::chdir;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let result = chdir("/path/to/directory")?;
|
||||
@@ -845,7 +845,7 @@ pub fn chdir(path: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::file_read;
|
||||
* use sal_os::file_read;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let content = file_read("file.txt")?;
|
||||
@@ -887,7 +887,7 @@ pub fn file_read(path: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::file_write;
|
||||
* use sal_os::file_write;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let result = file_write("file.txt", "Hello, world!")?;
|
||||
@@ -926,7 +926,7 @@ pub fn file_write(path: &str, content: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::file_write_append;
|
||||
* use sal_os::file_write_append;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* let result = file_write_append("log.txt", "New log entry\n")?;
|
||||
@@ -974,7 +974,7 @@ pub fn file_write_append(path: &str, content: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```no_run
|
||||
* use sal::os::mv;
|
||||
* use sal_os::mv;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Move a file
|
||||
@@ -1089,7 +1089,7 @@ pub fn mv(src: &str, dest: &str) -> Result<String, FsError> {
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::which;
|
||||
* use sal_os::which;
|
||||
*
|
||||
* let cmd_path = which("ls");
|
||||
* if cmd_path != "" {
|
||||
@@ -1133,15 +1133,15 @@ pub fn which(command: &str) -> String {
|
||||
*
|
||||
* # Examples
|
||||
*
|
||||
* ```
|
||||
* use sal::os::cmd_ensure_exists;
|
||||
* ```no_run
|
||||
* use sal_os::cmd_ensure_exists;
|
||||
*
|
||||
* fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
* // Check if a single command exists
|
||||
* let result = cmd_ensure_exists("nerdctl")?;
|
||||
* let result = cmd_ensure_exists("ls")?;
|
||||
*
|
||||
* // Check if multiple commands exist
|
||||
* let result = cmd_ensure_exists("nerdctl,docker,containerd")?;
|
||||
* let result = cmd_ensure_exists("ls,cat,grep")?;
|
||||
*
|
||||
* Ok(())
|
||||
* }
|
||||
|
Reference in New Issue
Block a user