Skip to content

Commit bb0571e

Browse files
committed
feat: Add alteriso.json to iso image
1 parent 0c63f85 commit bb0571e

3 files changed

Lines changed: 81 additions & 0 deletions

File tree

alteriso/src/internal/archiso/injects/injecter.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,25 @@ override__make_customize_airootfs() {
4040
_msg_info "Done! customize_airootfs.sh run successfully."
4141
fi
4242
}
43+
44+
__alteriso_make_version() {
45+
local _version_file="$__alteriso_profile_dir/alteriso.json"
46+
if [[ -e $_version_file ]]; then
47+
install -Dm644 "$_version_file" "${isofs_dir}/${install_dir}/alteriso.json"
48+
fi
49+
50+
if [[ "${buildmode}" == @("iso"|"netboot") ]]; then
51+
rm -f -- "${pacstrap_dir}/alteriso.json"
52+
install -Dm644 "$_version_file" "${isofs_dir}/${install_dir}/alteriso.json"
53+
54+
install -d -m 0755 -- "${isofs_dir}/${install_dir}"
55+
install -Dm644 "$_version_file" "${isofs_dir}/${install_dir}/alteriso.json"
56+
elif [[ "${buildmode}" == 'bootstrap' ]]; then
57+
rm -f -- "${bootstrap_parent}/alteriso.json"
58+
install -Dm644 "$_version_file" "${bootstrap_parent}/alteriso.json"
59+
fi
60+
}
61+
62+
post__make_version() {
63+
__alteriso_make_version
64+
}

alteriso/src/internal/archiso/profile_gen.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ func (p *Profile) GenArchisoProfile(outDir string) error {
7474
p.copyAirootfs,
7575
p.generatePackagesFile,
7676
p.pacmanConf,
77+
p.generateInfoFile,
7778
}
7879

7980
for _, task := range tasks {
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package archiso
2+
3+
import (
4+
"encoding/json"
5+
"os"
6+
"path"
7+
8+
"github.com/FascodeNet/alterlinux/src/internal/errors"
9+
)
10+
11+
type profileInfo struct {
12+
OSName string `json:"os_name,omitempty"`
13+
Arch string `json:"arch,omitempty"`
14+
Modules []struct {
15+
Name string `json:"name,omitempty"`
16+
ManifectVersion int `json:"version,omitempty"`
17+
ModuleVersion int `json:"module_version,omitempty"`
18+
} `json:"modules,omitempty"`
19+
}
20+
21+
func (p *Profile) ProfileInfo() (*profileInfo, error) {
22+
info := &profileInfo{
23+
OSName: p.Config.OSName,
24+
Arch: p.Config.Arch,
25+
}
26+
27+
for _, mod := range p.Modules() {
28+
info.Modules = append(info.Modules, struct {
29+
Name string `json:"name,omitempty"`
30+
ManifectVersion int `json:"version,omitempty"`
31+
ModuleVersion int `json:"module_version,omitempty"`
32+
}{
33+
Name: mod.Name,
34+
ManifectVersion: mod.Config.ManifestVersion,
35+
ModuleVersion: mod.Config.ModuleVersion,
36+
})
37+
}
38+
39+
return info, nil
40+
}
41+
42+
func (p *Profile) generateInfoFile(outDir string) error {
43+
info, err := p.ProfileInfo()
44+
if err != nil {
45+
return err
46+
}
47+
48+
bytes, err := json.MarshalIndent(info, "", " ")
49+
if err != nil {
50+
return errors.Wrap(err)
51+
}
52+
53+
dst := path.Join(outDir, "alteriso.json")
54+
if err := os.WriteFile(dst, bytes, 0o644); err != nil {
55+
return errors.Wrap(err)
56+
}
57+
return nil
58+
}

0 commit comments

Comments
 (0)