aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command/self_update_command.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-29 00:16:56 +0900
committernsfisis <nsfisis@gmail.com>2026-05-29 00:23:32 +0900
commit7f83e785a77fbdbcada9c6714703d4e5801af82a (patch)
treeef7debc5cbc91d521db4dc5a563807c486dafd22 /crates/shirabe/src/command/self_update_command.rs
parent7715c98aaf3e3962cabbcf740e93fa817a2f8027 (diff)
downloadphp-shirabe-7f83e785a77fbdbcada9c6714703d4e5801af82a.tar.gz
php-shirabe-7f83e785a77fbdbcada9c6714703d4e5801af82a.tar.zst
php-shirabe-7f83e785a77fbdbcada9c6714703d4e5801af82a.zip
refactor(io): unify IOInterface params to Rc<RefCell<dyn _>>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command/self_update_command.rs')
-rw-r--r--crates/shirabe/src/command/self_update_command.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/shirabe/src/command/self_update_command.rs b/crates/shirabe/src/command/self_update_command.rs
index fc22ab7..9b960f0 100644
--- a/crates/shirabe/src/command/self_update_command.rs
+++ b/crates/shirabe/src/command/self_update_command.rs
@@ -143,7 +143,7 @@ impl SelfUpdateCommand {
for channel in Versions::CHANNELS {
if input.get_option(channel).as_bool().unwrap_or(false) {
requested_channel = Some(channel.to_string());
- versions_util.set_channel(channel.to_string(), Some(&*io.borrow()))??;
+ versions_util.set_channel(channel.to_string(), Some(io.clone()))??;
break;
}
}
@@ -184,8 +184,7 @@ impl SelfUpdateCommand {
}
if input.get_option("update-keys").as_bool().unwrap_or(false) {
- // TODO(phase-b): re-borrow `io` after fetch_keys conflicts with the earlier `let io = self.get_io()` borrow
- let _ = io;
+ self.fetch_keys(io.clone(), &*config.borrow())?;
return Ok(0);
}
@@ -656,7 +655,11 @@ RGv89BPD+2DLnJysngsvVaUCAwEAAQ==\n\
}
/// @throws \Exception
- pub(crate) fn fetch_keys(&self, io: &dyn IOInterface, config: &Config) -> Result<()> {
+ pub(crate) fn fetch_keys(
+ &self,
+ io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>,
+ config: &Config,
+ ) -> Result<()> {
if !io.is_interactive() {
return Err(RuntimeException {
message: "Public keys can not be fetched in non-interactive mode, please run Composer interactively".to_string(),