Add cloud-localds as a required program
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-06-06 17:19:11 +02:00
parent c8b42626a9
commit 9bd702d60f
6 changed files with 37 additions and 30 deletions

View File

@ -124,7 +124,7 @@ impl DiskFileInfo {
}
DiskFileFormat::QCow2 { virtual_size } => {
let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_QEMU_IMAGE);
cmd.arg("create")
.arg("-f")
.arg("qcow2")
@ -161,7 +161,7 @@ impl DiskFileInfo {
let mut cmd = match (self.format, dest_format) {
// Decompress QCow2
(DiskFileFormat::CompressedQCow2, DiskFileFormat::QCow2 { .. }) => {
let mut cmd = Command::new(constants::GZIP_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_GZIP);
cmd.arg("--keep")
.arg("--decompress")
.arg("--to-stdout")
@ -172,7 +172,7 @@ impl DiskFileInfo {
// Compress QCow2
(DiskFileFormat::QCow2 { .. }, DiskFileFormat::CompressedQCow2) => {
let mut cmd = Command::new(constants::GZIP_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_GZIP);
cmd.arg("--keep")
.arg("--to-stdout")
.arg(&self.file_path)
@ -182,7 +182,7 @@ impl DiskFileInfo {
// Convert QCow2 to Raw file
(DiskFileFormat::QCow2 { .. }, DiskFileFormat::Raw { is_sparse }) => {
let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_QEMU_IMAGE);
cmd.arg("convert")
.arg("-f")
.arg("qcow2")
@ -201,7 +201,7 @@ impl DiskFileInfo {
// Clone a QCow file, using qemu-image instead of cp might improve "sparsification" of
// file
(DiskFileFormat::QCow2 { .. }, DiskFileFormat::QCow2 { .. }) => {
let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_QEMU_IMAGE);
cmd.arg("convert")
.arg("-f")
.arg("qcow2")
@ -214,7 +214,7 @@ impl DiskFileInfo {
// Convert Raw to QCow2 file
(DiskFileFormat::Raw { .. }, DiskFileFormat::QCow2 { .. }) => {
let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_QEMU_IMAGE);
cmd.arg("convert")
.arg("-f")
.arg("raw")
@ -228,7 +228,7 @@ impl DiskFileInfo {
// Render raw file non sparse
(DiskFileFormat::Raw { is_sparse: true }, DiskFileFormat::Raw { is_sparse: false }) => {
let mut cmd = Command::new(constants::COPY_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_COPY);
cmd.arg("--sparse=never")
.arg(&self.file_path)
.arg(&temp_file);
@ -237,7 +237,7 @@ impl DiskFileInfo {
// Render raw file sparse
(DiskFileFormat::Raw { is_sparse: false }, DiskFileFormat::Raw { is_sparse: true }) => {
let mut cmd = Command::new(constants::DD_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_DD);
cmd.arg("conv=sparse")
.arg(format!("if={}", self.file_path.display()))
.arg(format!("of={}", temp_file.display()));
@ -246,7 +246,7 @@ impl DiskFileInfo {
// Compress Raw
(DiskFileFormat::Raw { .. }, DiskFileFormat::CompressedRaw) => {
let mut cmd = Command::new(constants::GZIP_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_GZIP);
cmd.arg("--keep")
.arg("--to-stdout")
.arg(&self.file_path)
@ -256,7 +256,7 @@ impl DiskFileInfo {
// Decompress Raw to not sparse file
(DiskFileFormat::CompressedRaw, DiskFileFormat::Raw { is_sparse: false }) => {
let mut cmd = Command::new(constants::GZIP_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_GZIP);
cmd.arg("--keep")
.arg("--decompress")
.arg("--to-stdout")
@ -268,12 +268,12 @@ impl DiskFileInfo {
// Decompress Raw to sparse file
// https://benou.fr/www/ben/decompressing-sparse-files.html
(DiskFileFormat::CompressedRaw, DiskFileFormat::Raw { is_sparse: true }) => {
let mut cmd = Command::new(constants::BASH_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_BASH);
cmd.arg("-c").arg(format!(
"{} -d -c {} | {} conv=sparse of={}",
constants::GZIP_PROGRAM,
constants::PROGRAM_GZIP,
self.file_path.display(),
constants::DD_PROGRAM,
constants::PROGRAM_DD,
temp_file.display()
));
cmd
@ -281,7 +281,7 @@ impl DiskFileInfo {
// Dumb copy of file
(a, b) if a == b => {
let mut cmd = Command::new(constants::COPY_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_COPY);
cmd.arg("--sparse=auto")
.arg(&self.file_path)
.arg(&temp_file);
@ -341,7 +341,7 @@ struct QCowInfoOutput {
/// Get QCow2 virtual size
fn qcow_virt_size(path: &Path) -> anyhow::Result<FileSize> {
// Run qemu-img
let mut cmd = Command::new(constants::QEMU_IMAGE_PROGRAM);
let mut cmd = Command::new(constants::PROGRAM_QEMU_IMAGE);
cmd.args([
"info",
path.to_str().unwrap_or(""),
@ -353,7 +353,7 @@ fn qcow_virt_size(path: &Path) -> anyhow::Result<FileSize> {
if !output.status.success() {
anyhow::bail!(
"{} info failed, status: {}, stderr: {}",
constants::QEMU_IMAGE_PROGRAM,
constants::PROGRAM_QEMU_IMAGE,
output.status,
String::from_utf8_lossy(&output.stderr)
);