Skip to content

Commit 927d78e

Browse files
committed
Add: Split tasks.go
1 parent 237ee25 commit 927d78e

7 files changed

Lines changed: 121 additions & 115 deletions

File tree

alteriso5/cmd/build/work/init.go

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package work
2+
3+
import (
4+
"log/slog"
5+
"path"
6+
7+
"github.com/FascodeNet/alterlinux/alteriso5/utils"
8+
)
9+
10+
var makeSysLinux = NewBuildTask("makeSysLinux", func(w *Work) error {
11+
12+
slog.Debug("Setting up SYSLINUX for BIOS booting from a disk...")
13+
dirs := w.GetDirs()
14+
15+
isoSyslinuxDir := path.Join(dirs.Iso, "boot", "syslinux")
16+
17+
if err := utils.MkdirsAll(isoSyslinuxDir, dirs.SyslinuxConfig); err != nil {
18+
return err
19+
}
20+
21+
biosFilesDir := path.Join(dirs.Pacstrap, "usr", "lib", "syslinux", "bios")
22+
cpFiles := []utils.CopyTask{
23+
{
24+
Source: biosFilesDir,
25+
Dest: isoSyslinuxDir,
26+
Skip: utils.OnlySpecificExtention(".c32"),
27+
},
28+
{
29+
Source: dirs.SyslinuxConfig,
30+
Dest: isoSyslinuxDir,
31+
},
32+
{
33+
Source: path.Join(biosFilesDir, "lpxelinux.0"),
34+
Dest: path.Join(isoSyslinuxDir, "lpxelinux.0"),
35+
},
36+
{
37+
Source: path.Join(biosFilesDir, "memdisk"),
38+
Dest: path.Join(isoSyslinuxDir, "memdisk"),
39+
},
40+
}
41+
42+
if err := utils.CopyAll(cpFiles...); err != nil {
43+
return err
44+
}
45+
46+
return nil
47+
})
48+
49+
var makeBootModes *BuildTask = NewBuildTask("makeBootModes", func(w *Work) error {
50+
51+
return w.RunOnce(makeSysLinux)
52+
})
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package work
2+
3+
import (
4+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/work/airootfs"
5+
"github.com/FascodeNet/alterlinux/alteriso5/utils"
6+
)
7+
8+
var makeBaseDirs *BuildTask = NewBuildTask("makeBaseDirs",
9+
func(work *Work) error {
10+
11+
dirs := []string{
12+
work.Base,
13+
work.target.Out,
14+
}
15+
16+
if err := utils.MkdirsAll(dirs...); err != nil {
17+
return err
18+
}
19+
return nil
20+
})
21+
22+
var makeChroot *BuildTask = NewBuildTask("makeChroot", func(work *Work) error {
23+
24+
env, err := airootfs.New(work.GetDirs().Pacstrap, work.target.Arch)
25+
if err != nil {
26+
return err
27+
}
28+
if err := env.Init(); err != nil {
29+
return err
30+
31+
}
32+
return nil
33+
})
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package work
2+
3+
import "github.com/FascodeNet/alterlinux/alteriso5/cmd/build/work/boot"
4+
5+
var makeOutFiles *BuildTask = NewBuildTask("makeOutFiles", func(w *Work) error {
6+
7+
boot.Xorriso.SetArgsForSysLinuxElTorito()
8+
boot.Xorriso.SetArgsForSysLinuxElTorito()
9+
10+
return boot.Xorriso.Build(w.GetDirs().Iso, w.target.Out)
11+
})

alteriso5/cmd/build/work/tasks.go

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,8 @@ import (
55
"path"
66

77
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/work/airootfs"
8-
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/work/boot"
9-
"github.com/FascodeNet/alterlinux/alteriso5/utils"
108
)
119

12-
var makeBaseDirs *BuildTask = NewBuildTask("makeBaseDirs",
13-
func(work *Work) error {
14-
15-
dirs := []string{
16-
work.Base,
17-
work.target.Out,
18-
}
19-
20-
if err := utils.MkdirsAll(dirs...); err != nil {
21-
return err
22-
}
23-
return nil
24-
})
25-
26-
var makeChroot *BuildTask = NewBuildTask("makeChroot", func(work *Work) error {
27-
28-
env, err := airootfs.New(work.GetDirs().Pacstrap, work.target.Arch)
29-
if err != nil {
30-
return err
31-
}
32-
if err := env.Init(); err != nil {
33-
return err
34-
35-
}
36-
return nil
37-
})
38-
39-
var makeBootModes *BuildTask = NewBuildTask("makeBootModes", func(w *Work) error {
40-
41-
makeSysLinux := NewBuildTask("makeSysLinux", func(w *Work) error {
42-
43-
slog.Debug("Setting up SYSLINUX for BIOS booting from a disk...")
44-
dirs := w.GetDirs()
45-
46-
isoSyslinuxDir := path.Join(dirs.Iso, "boot", "syslinux")
47-
48-
if err := utils.MkdirsAll(isoSyslinuxDir, dirs.SyslinuxConfig); err != nil {
49-
return err
50-
}
51-
52-
biosFilesDir := path.Join(dirs.Pacstrap, "usr", "lib", "syslinux", "bios")
53-
cpFiles := []utils.CopyTask{
54-
{
55-
Source: biosFilesDir,
56-
Dest: isoSyslinuxDir,
57-
Skip: utils.OnlySpecificExtention(".c32"),
58-
},
59-
{
60-
Source: dirs.SyslinuxConfig,
61-
Dest: isoSyslinuxDir,
62-
},
63-
{
64-
Source: path.Join(biosFilesDir, "lpxelinux.0"),
65-
Dest: path.Join(isoSyslinuxDir, "lpxelinux.0"),
66-
},
67-
{
68-
Source: path.Join(biosFilesDir, "memdisk"),
69-
Dest: path.Join(isoSyslinuxDir, "memdisk"),
70-
},
71-
}
72-
73-
if err := utils.CopyAll(cpFiles...); err != nil {
74-
return err
75-
}
76-
77-
78-
79-
return nil
80-
})
81-
82-
return w.RunOnce(makeSysLinux)
83-
})
84-
8510
var makeAirootfs *BuildTask = NewBuildTask("makeAirootfs", func(w *Work) error {
8611

8712
slog.Debug("Copying profile to airootfs...")
@@ -94,11 +19,3 @@ var makeAirootfs *BuildTask = NewBuildTask("makeAirootfs", func(w *Work) error {
9419

9520
return sqfs.Build()
9621
})
97-
98-
var makeOutFiles *BuildTask = NewBuildTask("makeOutFiles", func(w *Work) error {
99-
100-
boot.Xorriso.SetArgsForSysLinuxElTorito()
101-
boot.Xorriso.SetArgsForSysLinuxElTorito()
102-
103-
return boot.Xorriso.Build(w.GetDirs().Iso, w.target.Out)
104-
})

alteriso5/cmd/build/work/utils.go

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

alteriso5/cmd/build/work/work.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package work
22

33
import (
4+
"os"
45
"path"
56

67
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build/config"
8+
"github.com/Hayao0819/nahi/osutils"
79
"github.com/spf13/cobra"
810
)
911

@@ -21,6 +23,12 @@ type dirs struct {
2123
SyslinuxConfig string
2224
}
2325

26+
func New(dir string) (*Work, error) {
27+
return &Work{
28+
Base: dir,
29+
}, nil
30+
}
31+
2432
func (w *Work) GetDirs() *dirs {
2533
return &dirs{
2634
Work: w.Base,
@@ -29,3 +37,20 @@ func (w *Work) GetDirs() *dirs {
2937
SyslinuxConfig: path.Join(w.profile.Base, "syslinux"),
3038
}
3139
}
40+
41+
func (w *Work) RunOnce(task *BuildTask) error {
42+
lp := path.Join(w.Base, w.target.Arch, "lockfile", task.Name())
43+
if osutils.Exists(lp) {
44+
return nil
45+
}
46+
47+
if err := task.Run(w); err != nil {
48+
return err
49+
} else {
50+
// Dont care about error
51+
os.MkdirAll(path.Dir(lp), 0755)
52+
os.Create(lp)
53+
54+
}
55+
return nil
56+
}

0 commit comments

Comments
 (0)