diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-17 02:53:53 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-17 02:53:53 +0900 |
| commit | a1c7e6908a26e10f6e1f23a51721664b5e2d838d (patch) | |
| tree | c575c76f1b43359ed74913da4c6a2636643f1ba0 /crates/shirabe/src/package/archiver | |
| parent | 7f606f36fef0c0467c3c0db3d0da33af486dae8a (diff) | |
| download | php-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.tar.gz php-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.tar.zst php-shirabe-a1c7e6908a26e10f6e1f23a51721664b5e2d838d.zip | |
chore(style): cargo fmt
Diffstat (limited to 'crates/shirabe/src/package/archiver')
8 files changed, 69 insertions, 47 deletions
diff --git a/crates/shirabe/src/package/archiver/archivable_files_filter.rs b/crates/shirabe/src/package/archiver/archivable_files_filter.rs index a267cf1..f820e08 100644 --- a/crates/shirabe/src/package/archiver/archivable_files_filter.rs +++ b/crates/shirabe/src/package/archiver/archivable_files_filter.rs @@ -1,7 +1,7 @@ //! ref: composer/src/Composer/Package/Archiver/ArchivableFilesFilter.php -use std::path::PathBuf; use shirabe_php_shim::PharData; +use std::path::PathBuf; pub struct ArchivableFilesFilter { inner: Box<dyn Iterator<Item = PathBuf>>, diff --git a/crates/shirabe/src/package/archiver/archivable_files_finder.rs b/crates/shirabe/src/package/archiver/archivable_files_finder.rs index 7d1b94e..35ec36f 100644 --- a/crates/shirabe/src/package/archiver/archivable_files_finder.rs +++ b/crates/shirabe/src/package/archiver/archivable_files_finder.rs @@ -1,12 +1,12 @@ //! ref: composer/src/Composer/Package/Archiver/ArchivableFilesFinder.php -use shirabe_external_packages::composer::pcre::preg::Preg; -use shirabe_external_packages::symfony::component::finder::finder::Finder; -use shirabe_external_packages::symfony::component::finder::spl_file_info::SplFileInfo; -use shirabe_php_shim::{preg_quote, realpath, RuntimeException}; use crate::package::archiver::composer_exclude_filter::ComposerExcludeFilter; use crate::package::archiver::git_exclude_filter::GitExcludeFilter; use crate::util::filesystem::Filesystem; +use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::symfony::component::finder::finder::Finder; +use shirabe_external_packages::symfony::component::finder::spl_file_info::SplFileInfo; +use shirabe_php_shim::{RuntimeException, preg_quote, realpath}; pub struct ArchivableFilesFinder { pub(crate) finder: Finder, @@ -30,7 +30,8 @@ impl ArchivableFilesFinder { return Err(RuntimeException { message: format!("Could not realpath() the source directory \"{}\"", sources), code: 0, - }.into()); + } + .into()); } let sources = fs.normalize_path(&sources_real_path.unwrap()); diff --git a/crates/shirabe/src/package/archiver/archive_manager.rs b/crates/shirabe/src/package/archiver/archive_manager.rs index ed7c6f7..3f7bfe0 100644 --- a/crates/shirabe/src/package/archiver/archive_manager.rs +++ b/crates/shirabe/src/package/archiver/archive_manager.rs @@ -1,11 +1,11 @@ //! ref: composer/src/Composer/Package/Archiver/ArchiveManager.php use indexmap::IndexMap; +use shirabe_external_packages::composer::pcre::preg::Preg; use shirabe_php_shim::{ - bin2hex, file_exists, random_bytes, realpath, sys_get_temp_dir, InvalidArgumentException, - RuntimeException, + InvalidArgumentException, RuntimeException, bin2hex, file_exists, random_bytes, realpath, + sys_get_temp_dir, }; -use shirabe_external_packages::composer::pcre::preg::Preg; use crate::downloader::download_manager::DownloadManager; use crate::json::json_file::JsonFile; @@ -58,11 +58,7 @@ impl ArchiveManager { ) -> IndexMap<String, String> { let base_name = match package.get_archive_name() { Some(name) => name.to_string(), - None => Preg::replace( - "#[^a-z0-9-_]#i", - "-", - package.get_name(), - ), + None => Preg::replace("#[^a-z0-9-_]#i", "-", package.get_name()), }; let mut parts: IndexMap<String, String> = IndexMap::new(); @@ -129,7 +125,10 @@ impl ArchiveManager { let mut usable_archiver_idx: Option<usize> = None; for (i, archiver) in self.archivers.iter().enumerate() { - if archiver.supports(format.clone(), package.get_source_type().map(|s| s.to_string())) { + if archiver.supports( + format.clone(), + package.get_source_type().map(|s| s.to_string()), + ) { usable_archiver_idx = Some(i); break; } diff --git a/crates/shirabe/src/package/archiver/base_exclude_filter.rs b/crates/shirabe/src/package/archiver/base_exclude_filter.rs index 7f737fe..f20af20 100644 --- a/crates/shirabe/src/package/archiver/base_exclude_filter.rs +++ b/crates/shirabe/src/package/archiver/base_exclude_filter.rs @@ -53,7 +53,10 @@ impl BaseExcludeFilter { } pub fn generate_patterns(&self, rules: Vec<String>) -> Vec<(String, bool, bool)> { - rules.into_iter().map(|rule| self.generate_pattern(&rule)).collect() + rules + .into_iter() + .map(|rule| self.generate_pattern(&rule)) + .collect() } pub fn generate_pattern(&self, rule: &str) -> (String, bool, bool) { diff --git a/crates/shirabe/src/package/archiver/git_exclude_filter.rs b/crates/shirabe/src/package/archiver/git_exclude_filter.rs index b3e43dc..8028c15 100644 --- a/crates/shirabe/src/package/archiver/git_exclude_filter.rs +++ b/crates/shirabe/src/package/archiver/git_exclude_filter.rs @@ -1,8 +1,8 @@ //! ref: composer/src/Composer/Package/Archiver/GitExcludeFilter.php -use std::path::Path; -use shirabe_external_packages::composer::pcre::preg::Preg; use crate::package::archiver::base_exclude_filter::BaseExcludeFilter; +use shirabe_external_packages::composer::pcre::preg::Preg; +use std::path::Path; pub struct GitExcludeFilter { inner: BaseExcludeFilter, @@ -20,10 +20,9 @@ impl GitExcludeFilter { .lines() .map(|l| l.to_string()) .collect(); - let patterns = filter.inner.parse_lines( - lines, - |line| GitExcludeFilter::parse_git_attributes_line_static(line), - ); + let patterns = filter.inner.parse_lines(lines, |line| { + GitExcludeFilter::parse_git_attributes_line_static(line) + }); filter.inner.exclude_patterns.extend(patterns); } diff --git a/crates/shirabe/src/package/archiver/mod.rs b/crates/shirabe/src/package/archiver/mod.rs new file mode 100644 index 0000000..ecf86c8 --- /dev/null +++ b/crates/shirabe/src/package/archiver/mod.rs @@ -0,0 +1,9 @@ +pub mod archivable_files_filter; +pub mod archivable_files_finder; +pub mod archive_manager; +pub mod archiver_interface; +pub mod base_exclude_filter; +pub mod composer_exclude_filter; +pub mod git_exclude_filter; +pub mod phar_archiver; +pub mod zip_archiver; diff --git a/crates/shirabe/src/package/archiver/phar_archiver.rs b/crates/shirabe/src/package/archiver/phar_archiver.rs index 24cd738..2e9d96e 100644 --- a/crates/shirabe/src/package/archiver/phar_archiver.rs +++ b/crates/shirabe/src/package/archiver/phar_archiver.rs @@ -2,8 +2,8 @@ use indexmap::IndexMap; use shirabe_php_shim::{ - bzcompress, file_exists, file_put_contents, function_exists, gzcompress, pack, str_repeat, - strrpos, unlink, FilesystemIterator, Phar, PharData, PhpMixed, RuntimeException, + FilesystemIterator, Phar, PharData, PhpMixed, RuntimeException, bzcompress, file_exists, + file_put_contents, function_exists, gzcompress, pack, str_repeat, strrpos, unlink, }; use crate::package::archiver::archivable_files_filter::ArchivableFilesFilter; @@ -79,14 +79,14 @@ impl ArchiverInterface for PharArchiver { let eocd = pack( "VvvvvVVv", &[ - PhpMixed::Int(0x06054b50), // End of central directory signature - PhpMixed::Int(0), // Number of this disk - PhpMixed::Int(0), // Disk where central directory starts - PhpMixed::Int(0), // Number of central directory records on this disk - PhpMixed::Int(0), // Total number of central directory records - PhpMixed::Int(0), // Size of central directory (bytes) - PhpMixed::Int(0), // Offset of start of central directory - PhpMixed::Int(0), // Comment length + PhpMixed::Int(0x06054b50), // End of central directory signature + PhpMixed::Int(0), // Number of this disk + PhpMixed::Int(0), // Disk where central directory starts + PhpMixed::Int(0), // Number of central directory records on this disk + PhpMixed::Int(0), // Total number of central directory records + PhpMixed::Int(0), // Size of central directory (bytes) + PhpMixed::Int(0), // Offset of start of central directory + PhpMixed::Int(0), // Comment length ], ); file_put_contents(&target, &eocd); @@ -100,10 +100,12 @@ impl ArchiverInterface for PharArchiver { .into()); } if format == "tar.gz" && function_exists("gzcompress") { - let data = gzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); + let data = + gzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); file_put_contents(&target, &data); } else if format == "tar.bz2" && function_exists("bzcompress") { - let data = bzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); + let data = + bzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); file_put_contents(&target, &data); } } diff --git a/crates/shirabe/src/package/archiver/zip_archiver.rs b/crates/shirabe/src/package/archiver/zip_archiver.rs index 104c544..ef5b40a 100644 --- a/crates/shirabe/src/package/archiver/zip_archiver.rs +++ b/crates/shirabe/src/package/archiver/zip_archiver.rs @@ -1,11 +1,13 @@ //! ref: composer/src/Composer/Package/Archiver/ZipArchiver.php -use indexmap::IndexMap; -use shirabe_php_shim::{class_exists, fileperms, method_exists, pack, realpath, PhpMixed, RuntimeException, ZipArchive}; use crate::package::archiver::archivable_files_finder::ArchivableFilesFinder; use crate::package::archiver::archiver_interface::ArchiverInterface; use crate::util::filesystem::Filesystem; use crate::util::platform::Platform; +use indexmap::IndexMap; +use shirabe_php_shim::{ + PhpMixed, RuntimeException, ZipArchive, class_exists, fileperms, method_exists, pack, realpath, +}; #[derive(Debug)] pub struct ZipArchiver; @@ -60,22 +62,29 @@ impl ArchiverInterface for ZipArchiver { // setExternalAttributesName() is only available with libzip 0.11.2 or above if method_exists(&PhpMixed::Null, "setExternalAttributesName") { let perms = fileperms(&filepath); - zip.set_external_attributes_name(&relative_path, ZipArchive::OPSYS_UNIX, perms << 16); + zip.set_external_attributes_name( + &relative_path, + ZipArchive::OPSYS_UNIX, + perms << 16, + ); } } if zip.close() { if !std::path::Path::new(&target).exists() { // create minimal valid ZIP file (Empty Central Directory + End of Central Directory record) - let eocd = pack("VvvvvVVv", &[ - PhpMixed::Int(0x06054b50), // End of central directory signature - PhpMixed::Int(0), // Number of this disk - PhpMixed::Int(0), // Disk where central directory starts - PhpMixed::Int(0), // Number of central directory records on this disk - PhpMixed::Int(0), // Total number of central directory records - PhpMixed::Int(0), // Size of central directory (bytes) - PhpMixed::Int(0), // Offset of start of central directory - PhpMixed::Int(0), // Comment length - ]); + let eocd = pack( + "VvvvvVVv", + &[ + PhpMixed::Int(0x06054b50), // End of central directory signature + PhpMixed::Int(0), // Number of this disk + PhpMixed::Int(0), // Disk where central directory starts + PhpMixed::Int(0), // Number of central directory records on this disk + PhpMixed::Int(0), // Total number of central directory records + PhpMixed::Int(0), // Size of central directory (bytes) + PhpMixed::Int(0), // Offset of start of central directory + PhpMixed::Int(0), // Comment length + ], + ); std::fs::write(&target, &eocd)?; } |
