aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command/bump_command.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-20 08:33:49 +0900
committernsfisis <nsfisis@gmail.com>2026-05-20 08:33:57 +0900
commitf31b101ce1e921a026ba234b1f0a83b0392bc118 (patch)
treeb7ac2aa84d71ebd162cc21aeab0240e7e0544988 /crates/shirabe/src/command/bump_command.rs
parent5e31fa33c3b5cf726a57a063b8e7a070869250fe (diff)
downloadphp-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.gz
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.zst
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.zip
fix(compile): fix all remaining compile errors
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command/bump_command.rs')
-rw-r--r--crates/shirabe/src/command/bump_command.rs33
1 files changed, 19 insertions, 14 deletions
diff --git a/crates/shirabe/src/command/bump_command.rs b/crates/shirabe/src/command/bump_command.rs
index fb32979..9bfee8b 100644
--- a/crates/shirabe/src/command/bump_command.rs
+++ b/crates/shirabe/src/command/bump_command.rs
@@ -56,7 +56,7 @@ impl BumpCommand {
}
pub fn execute(
- &self,
+ &mut self,
input: &dyn InputInterface,
_output: &dyn OutputInterface,
) -> Result<i64> {
@@ -70,18 +70,23 @@ impl BumpCommand {
})
.unwrap_or_default();
+ let dev_only = input.get_option("dev-only").as_bool().unwrap_or(false);
+ let no_dev_only = input.get_option("no-dev-only").as_bool().unwrap_or(false);
+ let dry_run = input.get_option("dry-run").as_bool().unwrap_or(false);
+ // TODO(phase-b): do_bump expects &dyn IOInterface but get_io() requires &mut self; needs IO sharing refactor
+ let io_ref: &dyn IOInterface = todo!("share IOInterface across calls in do_bump");
self.do_bump(
- self.get_io(),
- input.get_option("dev-only").as_bool().unwrap_or(false),
- input.get_option("no-dev-only").as_bool().unwrap_or(false),
- input.get_option("dry-run").as_bool().unwrap_or(false),
+ io_ref,
+ dev_only,
+ no_dev_only,
+ dry_run,
packages_filter,
"--dev-only".to_string(),
)
}
pub fn do_bump(
- &self,
+ &mut self,
io: &dyn IOInterface,
dev_only: bool,
no_dev_only: bool,
@@ -100,7 +105,7 @@ impl BumpCommand {
return Ok(Self::ERROR_GENERIC);
}
- let composer_json = JsonFile::new(composer_json_path.clone(), None, None)?;
+ let mut composer_json = JsonFile::new(composer_json_path.clone(), None, None)?;
let contents = match file_get_contents(&composer_json.get_path()) {
Some(c) => c,
None => {
@@ -129,7 +134,7 @@ impl BumpCommand {
return Ok(Self::ERROR_GENERIC);
}
- let composer = self.require_composer(None, None)?;
+ let mut composer = self.require_composer(None, None)?;
let has_lock_file_disabled = !composer.get_config().borrow().has("lock")
|| composer
.get_config()
@@ -139,9 +144,9 @@ impl BumpCommand {
.unwrap_or(true);
let repo: Box<dyn crate::repository::repository_interface::RepositoryInterface> =
if !has_lock_file_disabled {
- Box::new(composer.get_locker().get_locked_repository(true)?)
- } else if composer.get_locker().is_locked() {
- if !composer.get_locker().is_fresh()? {
+ Box::new(composer.get_locker_mut().get_locked_repository(true)?)
+ } else if composer.get_locker_mut().is_locked() {
+ if !composer.get_locker_mut().is_fresh()? {
io.write_error3(
"<error>The lock file is not up to date with the latest changes in composer.json. Run the appropriate `update` to fix that before you use the `bump` command.</error>",
true,
@@ -149,7 +154,7 @@ impl BumpCommand {
);
return Ok(Self::ERROR_LOCK_OUTDATED);
}
- Box::new(composer.get_locker().get_locked_repository(true)?)
+ Box::new(composer.get_locker_mut().get_locked_repository(true)?)
} else {
// TODO(phase-b): get_local_repository returns &dyn InstalledRepositoryInterface;
// cloning into an owned Box requires clone_box on that trait.
@@ -304,7 +309,7 @@ impl BumpCommand {
}
if !dry_run
- && composer.get_locker().is_locked()
+ && composer.get_locker_mut().is_locked()
&& composer
.get_config()
.borrow_mut()
@@ -314,7 +319,7 @@ impl BumpCommand {
&& change_count > 0
{
composer
- .get_locker()
+ .get_locker_mut()
.update_hash(&composer_json, None::<fn(_) -> _>)?;
}