Skip to content

Commit 259048e

Browse files
committed
Remove: Simple boot modes
1 parent 2b266f0 commit 259048e

11 files changed

Lines changed: 66 additions & 117 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
/work
2+
/out
3+
.DS_Store

alteriso5/cmd/build/build.go

Lines changed: 0 additions & 35 deletions
This file was deleted.

alteriso5/cmd/build/cmd.go

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ package build
33
import (
44
"fmt"
55
"os"
6+
"path"
67

8+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/config"
9+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/work"
710
"github.com/FascodeNet/alterlinux/alteriso5/cmd/check"
811
"github.com/FascodeNet/alterlinux/alteriso5/utils"
912
"github.com/spf13/cobra"
@@ -15,20 +18,42 @@ func Cmd() *cobra.Command {
1518
Short: "Build an ISO image",
1619
RunE: func(cmd *cobra.Command, args []string) error {
1720

21+
// Handle signals
1822
utils.OnSignal(func(s os.Signal) {
1923
fmt.Println("Received signal:", s)
2024
os.Exit(1)
2125
}, os.Interrupt)
2226

27+
// Check dependencies
2328
if err := utils.CallCmd(cmd, *check.Cmd()); err != nil {
2429
return err
2530
}
2631

27-
if err := build(); err != nil {
32+
// Get current working directory
33+
current, err := os.Getwd()
34+
if err != nil {
2835
return err
2936
}
37+
workDir := path.Join(current, "work")
38+
outDir := path.Join(current, "out")
39+
40+
// Prepare work environment
41+
work, err := work.New(workDir)
42+
if err != nil {
43+
return err
44+
}
45+
46+
// Dummy profile
47+
profile := config.Profile{
48+
Base: path.Join(current, "profile"),
49+
InstallDir: "alter",
50+
BootModes: []string{"SysLinux"},
51+
}
52+
53+
// TODO: Add more targets
54+
target := config.NewTarget("x86_64", outDir)
55+
return work.Build(profile, target, cmd)
3056

31-
return nil
3257
},
3358
}
3459

alteriso5/cmd/build/work/boot/func.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

alteriso5/cmd/build/work/boot/mode.go

Lines changed: 0 additions & 24 deletions
This file was deleted.

alteriso5/cmd/build/work/boot/syslinux.go

Lines changed: 0 additions & 9 deletions
This file was deleted.

alteriso5/cmd/build/work/boot/xorriso-syslinux.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
)
66

77
// SysLinux MBR El Torito
8-
func (o *xorriso) setArgsForSysLinuxElTorito() {
8+
func (o *xorriso) SetArgsForSysLinuxElTorito() {
99
arg := xorrisoArg{
1010
name: "SysLinuxEltorito",
1111
}
@@ -17,7 +17,7 @@ func (o *xorriso) setArgsForSysLinuxElTorito() {
1717
o.addArg(&arg)
1818
}
1919

20-
func (o *xorriso) setArgsForSysLinuxMBRBios() {
20+
func (o *xorriso) SetArgsForSysLinuxMBRBios() {
2121

2222
arg := xorrisoArg{
2323
name: "SysLinuxMBRBios",

alteriso5/cmd/build/work/boot/xorriso.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package boot
33
import (
44
"os"
55
"os/exec"
6+
"path"
67
)
78

89
var Xorriso = xorriso{}
@@ -43,14 +44,17 @@ func (o *xorriso) addArg(arg *xorrisoArg) {
4344
}
4445

4546
func (o *xorriso) defaultArgs() *xorrisoArg {
47+
48+
out := path.Join(o.out, "alterlinux.iso")
49+
4650
d := []string{
4751
"-as", "mkisofs",
4852
"-iso-level", "3",
4953
"-full-iso9660-filenames",
5054
"-joliet",
5155
"-joliet-long",
5256
"-rational-rock",
53-
"--output", o.out,
57+
"--output", out,
5458
o.fsDir,
5559
}
5660
return &xorrisoArg{

alteriso5/cmd/build/work/build.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package work
22

3-
import "github.com/FascodeNet/alterlinux/alteriso5/cmd/build/config"
3+
import (
4+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/config"
5+
"github.com/spf13/cobra"
6+
)
47

5-
func (work Work) Build(p config.Profile, t config.Target) error {
8+
func (work Work) Build(p config.Profile, t config.Target, c *cobra.Command) error {
69

710
work.profile = &p
811
work.target = &t
12+
work.Cmd = c
913

1014
tasks := []*BuildTask{
1115
makeBaseDirs,
1216
makeChroot,
1317
makeBootModes,
1418
makeAirootfs,
15-
makeBoot,
19+
makeOutFiles,
1620
}
1721

1822
for _, t := range tasks {

alteriso5/cmd/build/work/tasks.go

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,30 @@ var makeChroot *BuildTask = NewBuildTask("makeChroot", func(work *Work) error {
3737
})
3838

3939
var makeBootModes *BuildTask = NewBuildTask("makeBootModes", func(w *Work) error {
40-
slog.Debug("Setting up SYSLINUX for BIOS booting from a disk...")
4140

42-
isoSyslinuxDir := path.Join(w.Base, "iso", "boot", "syslinux")
41+
makeSysLinux := NewBuildTask("makeSysLinux", func(w *Work) error {
4342

44-
if err := utils.MkdirsAll(isoSyslinuxDir); err != nil {
45-
return err
46-
}
43+
slog.Debug("Setting up SYSLINUX for BIOS booting from a disk...")
4744

48-
profileSysLinuxDir := path.Join(w.profile.Base, "syslinux")
45+
isoSyslinuxDir := path.Join(w.Base, "iso", "boot", "syslinux")
4946

50-
if err := cp.Copy(profileSysLinuxDir, isoSyslinuxDir); err != nil {
51-
return err
52-
}
47+
if err := utils.MkdirsAll(isoSyslinuxDir); err != nil {
48+
return err
49+
}
5350

54-
return nil
51+
profileSysLinuxDir := path.Join(w.profile.Base, "syslinux")
52+
53+
if err := cp.Copy(profileSysLinuxDir, isoSyslinuxDir); err != nil {
54+
return err
55+
}
56+
57+
boot.Xorriso.SetArgsForSysLinuxElTorito()
58+
boot.Xorriso.SetArgsForSysLinuxElTorito()
59+
60+
return nil
61+
})
62+
63+
return makeSysLinux.Run(w)
5564
})
5665

5766
var makeAirootfs *BuildTask = NewBuildTask("makeAirootfs", func(w *Work) error {
@@ -68,13 +77,6 @@ var makeAirootfs *BuildTask = NewBuildTask("makeAirootfs", func(w *Work) error {
6877
return sqfs.Build()
6978
})
7079

71-
var makeBoot *BuildTask = NewBuildTask("makeBoot", func(w *Work) error {
72-
73-
boot.SysLinux.SetInstall(func() error {
74-
return nil
75-
})
76-
77-
modes := boot.GetModesByName(w.profile.BootModes...)
78-
return boot.Setup(&modes)
79-
80+
var makeOutFiles *BuildTask = NewBuildTask("makeOutFiles", func(w *Work) error {
81+
return boot.Xorriso.Build(w.Base, w.target.Out)
8082
})

0 commit comments

Comments
 (0)