Add step to update haxelib packages (#774)
This commit is contained in:
@@ -84,6 +84,7 @@ pub enum Step {
|
||||
Gcloud,
|
||||
Gem,
|
||||
GitRepos,
|
||||
Haxelib,
|
||||
GnomeShellExtensions,
|
||||
HomeManager,
|
||||
Jetpack,
|
||||
|
||||
@@ -313,6 +313,7 @@ fn run() -> Result<()> {
|
||||
runner.execute(Step::Composer, "composer", || generic::run_composer_update(&ctx))?;
|
||||
runner.execute(Step::Krew, "krew", || generic::run_krew_upgrade(run_type))?;
|
||||
runner.execute(Step::Gem, "gem", || generic::run_gem(&base_dirs, run_type))?;
|
||||
runner.execute(Step::Haxelib, "haxelib", || generic::run_haxelib_update(&ctx))?;
|
||||
runner.execute(Step::Sheldon, "sheldon", || generic::run_sheldon(&ctx))?;
|
||||
runner.execute(Step::Rtcl, "rtcl", || generic::run_rtcl(&ctx))?;
|
||||
runner.execute(Step::Bin, "bin", || generic::bin_update(&ctx))?;
|
||||
|
||||
@@ -77,6 +77,30 @@ pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> {
|
||||
command.check_run()
|
||||
}
|
||||
|
||||
pub fn run_haxelib_update(ctx: &ExecutionContext) -> Result<()> {
|
||||
let haxelib = utils::require("haxelib")?;
|
||||
|
||||
let haxelib_dir =
|
||||
PathBuf::from(std::str::from_utf8(&Command::new(&haxelib).arg("config").output()?.stdout)?.trim()).require()?;
|
||||
|
||||
let directory_writable = tempfile_in(&haxelib_dir).is_ok();
|
||||
debug!("{:?} writable: {}", haxelib_dir, directory_writable);
|
||||
|
||||
print_separator("haxelib");
|
||||
|
||||
let mut command = if directory_writable {
|
||||
ctx.run_type().execute(&haxelib)
|
||||
} else {
|
||||
let mut c = ctx
|
||||
.run_type()
|
||||
.execute(ctx.sudo().as_ref().ok_or(TopgradeError::SudoRequired)?);
|
||||
c.arg(&haxelib);
|
||||
c
|
||||
};
|
||||
|
||||
command.arg("update").check_run()
|
||||
}
|
||||
|
||||
pub fn run_sheldon(ctx: &ExecutionContext) -> Result<()> {
|
||||
let sheldon = utils::require("sheldon")?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user