diff options
Diffstat (limited to 'crates/shirabe/src')
15 files changed, 33 insertions, 2 deletions
diff --git a/crates/shirabe/src/downloader/download_manager.rs b/crates/shirabe/src/downloader/download_manager.rs index 7ff21a25..682fdcb8 100644 --- a/crates/shirabe/src/downloader/download_manager.rs +++ b/crates/shirabe/src/downloader/download_manager.rs @@ -149,7 +149,7 @@ impl DownloadManager { return Err(LogicException { message: format!( "Downloader \"{}\" is a {} type downloader and can not be used to download {} for package {}", - shirabe_php_shim::get_class_obj(&*downloader.borrow()), + shirabe_php_shim::PhpClass::php_class_name(&*downloader.borrow()), downloader_installation_source, installation_source.unwrap_or_default(), package, diff --git a/crates/shirabe/src/downloader/downloader_interface.rs b/crates/shirabe/src/downloader/downloader_interface.rs index 873438e2..8f2e2c0d 100644 --- a/crates/shirabe/src/downloader/downloader_interface.rs +++ b/crates/shirabe/src/downloader/downloader_interface.rs @@ -3,8 +3,10 @@ use crate::package::PackageInterfaceHandle; use shirabe_php_shim::PhpMixed; +/// `PhpClass` is a supertrait because `DownloadManager::getDownloaderForPackage` reports +/// `get_class($downloader)` in its error message, and Rust has no runtime class name. #[async_trait::async_trait(?Send)] -pub trait DownloaderInterface: std::fmt::Debug { +pub trait DownloaderInterface: std::fmt::Debug + shirabe_php_shim::PhpClass { fn get_installation_source(&self) -> String; async fn download( diff --git a/crates/shirabe/src/downloader/file_downloader.rs b/crates/shirabe/src/downloader/file_downloader.rs index 4ee580f8..053a7161 100644 --- a/crates/shirabe/src/downloader/file_downloader.rs +++ b/crates/shirabe/src/downloader/file_downloader.rs @@ -47,6 +47,8 @@ pub static DOWNLOAD_METADATA: LazyLock<Mutex<IndexMap<String, PhpMixed>>> = pub static RESPONSE_HEADERS: LazyLock<Mutex<IndexMap<String, Vec<String>>>> = LazyLock::new(|| Mutex::new(IndexMap::new())); +shirabe_php_shim::impl_php_class!(FileDownloader, r"Composer\Downloader\FileDownloader"); + /// Base downloader for files #[derive(Debug)] pub struct FileDownloader { diff --git a/crates/shirabe/src/downloader/fossil_downloader.rs b/crates/shirabe/src/downloader/fossil_downloader.rs index 2f6df9a4..c6be8f24 100644 --- a/crates/shirabe/src/downloader/fossil_downloader.rs +++ b/crates/shirabe/src/downloader/fossil_downloader.rs @@ -15,6 +15,8 @@ use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{PhpMixed, RuntimeException, php_regex}; +shirabe_php_shim::impl_php_class!(FossilDownloader, r"Composer\Downloader\FossilDownloader"); + #[derive(Debug)] pub struct FossilDownloader { inner: VcsDownloaderBase, diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs index 0becf427..dd5f4e41 100644 --- a/crates/shirabe/src/downloader/git_downloader.rs +++ b/crates/shirabe/src/downloader/git_downloader.rs @@ -23,6 +23,8 @@ use shirabe_php_shim::{ php_regex, preg_quote, realpath, rtrim, strlen, strpos, substr, trim, version_compare, }; +shirabe_php_shim::impl_php_class!(GitDownloader, r"Composer\Downloader\GitDownloader"); + #[derive(Debug)] pub struct GitDownloader { inner: VcsDownloaderBase, diff --git a/crates/shirabe/src/downloader/gzip_downloader.rs b/crates/shirabe/src/downloader/gzip_downloader.rs index 297cbc11..ff7962e0 100644 --- a/crates/shirabe/src/downloader/gzip_downloader.rs +++ b/crates/shirabe/src/downloader/gzip_downloader.rs @@ -19,6 +19,8 @@ use shirabe_php_shim::{ strtr, }; +shirabe_php_shim::impl_php_class!(GzipDownloader, r"Composer\Downloader\GzipDownloader"); + #[derive(Debug)] pub struct GzipDownloader { inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/hg_downloader.rs b/crates/shirabe/src/downloader/hg_downloader.rs index 1feecd3e..68a84535 100644 --- a/crates/shirabe/src/downloader/hg_downloader.rs +++ b/crates/shirabe/src/downloader/hg_downloader.rs @@ -15,6 +15,8 @@ use crate::util::ProcessExecutor; use indexmap::IndexMap; use shirabe_php_shim::{PhpMixed, RuntimeException}; +shirabe_php_shim::impl_php_class!(HgDownloader, r"Composer\Downloader\HgDownloader"); + #[derive(Debug)] pub struct HgDownloader { inner: VcsDownloaderBase, diff --git a/crates/shirabe/src/downloader/path_downloader.rs b/crates/shirabe/src/downloader/path_downloader.rs index 72b77fc1..ec07d057 100644 --- a/crates/shirabe/src/downloader/path_downloader.rs +++ b/crates/shirabe/src/downloader/path_downloader.rs @@ -27,6 +27,8 @@ use shirabe_php_shim::{ RuntimeException, file_exists, function_exists, is_dir, realpath, }; +shirabe_php_shim::impl_php_class!(PathDownloader, r"Composer\Downloader\PathDownloader"); + #[derive(Debug)] pub struct PathDownloader { pub(crate) inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/perforce_downloader.rs b/crates/shirabe/src/downloader/perforce_downloader.rs index 5f272fd5..74b2155b 100644 --- a/crates/shirabe/src/downloader/perforce_downloader.rs +++ b/crates/shirabe/src/downloader/perforce_downloader.rs @@ -17,6 +17,11 @@ use crate::util::ProcessExecutor; use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; +shirabe_php_shim::impl_php_class!( + PerforceDownloader, + r"Composer\Downloader\PerforceDownloader" +); + #[derive(Debug)] pub struct PerforceDownloader { inner: VcsDownloaderBase, diff --git a/crates/shirabe/src/downloader/phar_downloader.rs b/crates/shirabe/src/downloader/phar_downloader.rs index 795d0645..50b45eba 100644 --- a/crates/shirabe/src/downloader/phar_downloader.rs +++ b/crates/shirabe/src/downloader/phar_downloader.rs @@ -15,6 +15,8 @@ use crate::util::ProcessExecutor; use indexmap::IndexMap; use shirabe_php_shim::{Phar, PhpMixed}; +shirabe_php_shim::impl_php_class!(PharDownloader, r"Composer\Downloader\PharDownloader"); + #[derive(Debug)] pub struct PharDownloader { inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/rar_downloader.rs b/crates/shirabe/src/downloader/rar_downloader.rs index 39ffc23b..645a5247 100644 --- a/crates/shirabe/src/downloader/rar_downloader.rs +++ b/crates/shirabe/src/downloader/rar_downloader.rs @@ -18,6 +18,8 @@ use shirabe_php_shim::{ PhpMixed, RarArchive, RuntimeException, UnexpectedValueException, class_exists, implode, }; +shirabe_php_shim::impl_php_class!(RarDownloader, r"Composer\Downloader\RarDownloader"); + #[derive(Debug)] pub struct RarDownloader { inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/svn_downloader.rs b/crates/shirabe/src/downloader/svn_downloader.rs index f5b7a833..6abe3ddf 100644 --- a/crates/shirabe/src/downloader/svn_downloader.rs +++ b/crates/shirabe/src/downloader/svn_downloader.rs @@ -18,6 +18,8 @@ use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{PhpMixed, RuntimeException, is_dir, php_regex, version_compare}; +shirabe_php_shim::impl_php_class!(SvnDownloader, r"Composer\Downloader\SvnDownloader"); + #[derive(Debug)] pub struct SvnDownloader { inner: VcsDownloaderBase, diff --git a/crates/shirabe/src/downloader/tar_downloader.rs b/crates/shirabe/src/downloader/tar_downloader.rs index 3c73595b..ad18f052 100644 --- a/crates/shirabe/src/downloader/tar_downloader.rs +++ b/crates/shirabe/src/downloader/tar_downloader.rs @@ -15,6 +15,8 @@ use crate::util::ProcessExecutor; use indexmap::IndexMap; use shirabe_php_shim::{PharData, PhpMixed}; +shirabe_php_shim::impl_php_class!(TarDownloader, r"Composer\Downloader\TarDownloader"); + #[derive(Debug)] pub struct TarDownloader { inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/xz_downloader.rs b/crates/shirabe/src/downloader/xz_downloader.rs index 2041c356..6be5ea2e 100644 --- a/crates/shirabe/src/downloader/xz_downloader.rs +++ b/crates/shirabe/src/downloader/xz_downloader.rs @@ -15,6 +15,8 @@ use anyhow::bail; use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; +shirabe_php_shim::impl_php_class!(XzDownloader, r"Composer\Downloader\XzDownloader"); + #[derive(Debug)] pub struct XzDownloader { inner: FileDownloader, diff --git a/crates/shirabe/src/downloader/zip_downloader.rs b/crates/shirabe/src/downloader/zip_downloader.rs index d8f7d05e..9d7dbe7a 100644 --- a/crates/shirabe/src/downloader/zip_downloader.rs +++ b/crates/shirabe/src/downloader/zip_downloader.rs @@ -22,6 +22,8 @@ static UNZIP_COMMANDS: Mutex<Option<Vec<Vec<String>>>> = Mutex::new(None); static HAS_ZIP_ARCHIVE: Mutex<Option<bool>> = Mutex::new(None); static IS_WINDOWS: Mutex<Option<bool>> = Mutex::new(None); +shirabe_php_shim::impl_php_class!(ZipDownloader, r"Composer\Downloader\ZipDownloader"); + #[derive(Debug)] pub struct ZipDownloader { inner: FileDownloader, |
