Skip to content

Commit a28ea73

Browse files
authored
Merge pull request #882 from rick-gnous/main
Add mkisofs support
2 parents 31c87aa + e9c6e0f commit a28ea73

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

distrobuilder/main_repack-windows.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,13 +304,22 @@ func (c *cmdRepackWindows) run(cmd *cobra.Command, args []string, overlayDir str
304304

305305
logger.Info("Generating new ISO")
306306
var stdout strings.Builder
307+
var software string
307308

308309
err = shared.RunCommand(c.global.ctx, nil, &stdout, "genisoimage", "--version")
309310
if err != nil {
310-
return fmt.Errorf("Failed to determine version of genisoimage: %w", err)
311+
err = shared.RunCommand(c.global.ctx, nil, &stdout, "mkisofs", "--version")
312+
if err != nil {
313+
return fmt.Errorf("Failed to determine version of genisoimage or mkisofs: %w", err)
314+
} else {
315+
software = "mkisofs"
316+
}
317+
} else {
318+
software = "genisoimage"
311319
}
312320

313321
version := strings.Split(stdout.String(), "\n")[0]
322+
314323
genArgs := []string{"-l", "-iso-level", "4", "-no-emul-boot",
315324
"-b", "boot/etfsboot.com", "-boot-load-seg", "0",
316325
"-boot-load-size", "8", "-eltorito-alt-boot"}
@@ -337,7 +346,7 @@ func (c *cmdRepackWindows) run(cmd *cobra.Command, args []string, overlayDir str
337346

338347
return os.Stderr.Write(b)
339348
})),
340-
nil, nil, "genisoimage", genArgs...)
349+
nil, nil, software, genArgs...)
341350

342351
if err != nil {
343352
return fmt.Errorf("Failed to generate ISO: %w", err)
@@ -426,7 +435,7 @@ func (c *cmdRepackWindows) modifyWimIndex(wimFile string, index int, name string
426435
}
427436

428437
func (c *cmdRepackWindows) checkDependencies() error {
429-
dependencies := []string{"genisoimage", "hivexregedit", "rsync", "wimlib-imagex"}
438+
dependencies := []string{"hivexregedit", "rsync", "wimlib-imagex"}
430439

431440
for _, dep := range dependencies {
432441
_, err := exec.LookPath(dep)
@@ -435,6 +444,12 @@ func (c *cmdRepackWindows) checkDependencies() error {
435444
}
436445
}
437446

447+
_, err := exec.LookPath("genisoimage")
448+
_, err1 := exec.LookPath("mkisofs")
449+
if err != nil && err1 != nil {
450+
return fmt.Errorf("Required tool genisoimage or mkisofs is missing")
451+
}
452+
438453
return nil
439454
}
440455

0 commit comments

Comments
 (0)