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,24 +370,33 @@ 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
} }
f, err := os.OpenFile(base+"-initrd.img", os.O_APPEND|os.O_WRONLY, 0644) if len(initrd) != 0 {
if err != nil { f, err := os.OpenFile(base+"-initrd.img", os.O_APPEND|os.O_WRONLY, 0644)
return err if err != nil {
} return err
defer f.Close() }
if _, err = f.Write(initrd); err != nil { defer f.Close()
return err if _, err = f.Write(initrd); err != nil {
return err
}
} }
} else { } else {
log.Infof(" %s %s %s", base+"-kernel", base+"-initrd.img", base+"-cmdline") if len(initrd) != 0 {
if err := ioutil.WriteFile(base+"-initrd.img", initrd, os.FileMode(0644)); err != nil { 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 {
return err
}
}
}
if len(kernel) != 0 {
if err := ioutil.WriteFile(base+"-kernel", kernel, os.FileMode(0644)); err != nil {
return err return err
} }
} }
if err := ioutil.WriteFile(base+"-kernel", kernel, os.FileMode(0644)); err != nil { if len(cmdline) != 0 {
return err 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,41 +408,47 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
} }
defer f.Close() defer f.Close()
tw := tar.NewWriter(f) tw := tar.NewWriter(f)
hdr := &tar.Header{ if len(kernel) != 0 {
Name: "kernel", hdr := &tar.Header{
Mode: 0644, Name: "kernel",
Size: int64(len(kernel)), Mode: 0644,
Format: tar.FormatPAX, Size: int64(len(kernel)),
Format: tar.FormatPAX,
}
if err := tw.WriteHeader(hdr); err != nil {
return err
}
if _, err := tw.Write(kernel); err != nil {
return err
}
} }
if err := tw.WriteHeader(hdr); err != nil { if len(initrd) != 0 {
return err hdr := &tar.Header{
Name: "initrd.img",
Mode: 0644,
Size: int64(len(initrd)),
Format: tar.FormatPAX,
}
if err := tw.WriteHeader(hdr); err != nil {
return err
}
if _, err := tw.Write(initrd); err != nil {
return err
}
} }
if _, err := tw.Write(kernel); err != nil { if len(cmdline) != 0 {
return err hdr := &tar.Header{
} Name: "cmdline",
hdr = &tar.Header{ Mode: 0644,
Name: "initrd.img", Size: int64(len(cmdline)),
Mode: 0644, Format: tar.FormatPAX,
Size: int64(len(initrd)), }
Format: tar.FormatPAX, if err := tw.WriteHeader(hdr); err != nil {
} return err
if err := tw.WriteHeader(hdr); err != nil { }
return err if _, err := tw.Write([]byte(cmdline)); err != nil {
} return err
if _, err := tw.Write(initrd); err != nil { }
return err
}
hdr = &tar.Header{
Name: "cmdline",
Mode: 0644,
Size: int64(len(cmdline)),
Format: tar.FormatPAX,
}
if err := tw.WriteHeader(hdr); err != nil {
return err
}
if _, err := tw.Write([]byte(cmdline)); err != nil {
return err
} }
if len(ucode) != 0 { if len(ucode) != 0 {
hdr := &tar.Header{ hdr := &tar.Header{