Merge pull request #3213 from rn/build-improv

build: Don't create empty kernel/cmdline files
This commit is contained in:
Rolf Neugebauer 2018-10-29 22:27:24 +00:00 committed by GitHub
commit 09420e89f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -370,6 +370,7 @@ func outputKernelInitrd(base string, kernel []byte, initrd []byte, cmdline strin
if err := ioutil.WriteFile(base+"-initrd.img", ucode, os.FileMode(0644)); err != nil { if err := ioutil.WriteFile(base+"-initrd.img", ucode, os.FileMode(0644)); err != nil {
return err return err
} }
if len(initrd) != 0 {
f, err := os.OpenFile(base+"-initrd.img", os.O_APPEND|os.O_WRONLY, 0644) f, err := os.OpenFile(base+"-initrd.img", os.O_APPEND|os.O_WRONLY, 0644)
if err != nil { if err != nil {
return err return err
@ -378,16 +379,24 @@ func outputKernelInitrd(base string, kernel []byte, initrd []byte, cmdline strin
if _, err = f.Write(initrd); err != nil { if _, err = f.Write(initrd); err != nil {
return err return err
} }
}
} else { } else {
if len(initrd) != 0 {
log.Infof(" %s %s %s", base+"-kernel", base+"-initrd.img", base+"-cmdline") log.Infof(" %s %s %s", base+"-kernel", base+"-initrd.img", base+"-cmdline")
if err := ioutil.WriteFile(base+"-initrd.img", initrd, os.FileMode(0644)); err != nil { if err := ioutil.WriteFile(base+"-initrd.img", initrd, os.FileMode(0644)); err != nil {
return err return err
} }
} }
}
if len(kernel) != 0 {
if err := ioutil.WriteFile(base+"-kernel", kernel, os.FileMode(0644)); err != nil { if err := ioutil.WriteFile(base+"-kernel", kernel, os.FileMode(0644)); err != nil {
return err return err
} }
}
if len(cmdline) != 0 {
return ioutil.WriteFile(base+"-cmdline", []byte(cmdline), os.FileMode(0644)) return ioutil.WriteFile(base+"-cmdline", []byte(cmdline), os.FileMode(0644))
}
return nil
} }
func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdline string, ucode []byte) error { func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdline string, ucode []byte) error {
@ -399,6 +408,7 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
} }
defer f.Close() defer f.Close()
tw := tar.NewWriter(f) tw := tar.NewWriter(f)
if len(kernel) != 0 {
hdr := &tar.Header{ hdr := &tar.Header{
Name: "kernel", Name: "kernel",
Mode: 0644, Mode: 0644,
@ -411,7 +421,9 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
if _, err := tw.Write(kernel); err != nil { if _, err := tw.Write(kernel); err != nil {
return err return err
} }
hdr = &tar.Header{ }
if len(initrd) != 0 {
hdr := &tar.Header{
Name: "initrd.img", Name: "initrd.img",
Mode: 0644, Mode: 0644,
Size: int64(len(initrd)), Size: int64(len(initrd)),
@ -423,7 +435,9 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
if _, err := tw.Write(initrd); err != nil { if _, err := tw.Write(initrd); err != nil {
return err return err
} }
hdr = &tar.Header{ }
if len(cmdline) != 0 {
hdr := &tar.Header{
Name: "cmdline", Name: "cmdline",
Mode: 0644, Mode: 0644,
Size: int64(len(cmdline)), Size: int64(len(cmdline)),
@ -435,6 +449,7 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
if _, err := tw.Write([]byte(cmdline)); err != nil { if _, err := tw.Write([]byte(cmdline)); err != nil {
return err return err
} }
}
if len(ucode) != 0 { if len(ucode) != 0 {
hdr := &tar.Header{ hdr := &tar.Header{
Name: "ucode.cpio", Name: "ucode.cpio",