Output kernel command line to a file in the kernel+initrd output case

Trying to find the relevant yaml file was an issue as we now support
`--name` and it might be in a different directory, so although it is
a bit verbose outputing a whole file at least it is more consistent.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2017-03-20 12:16:34 +00:00
parent c4c7c1e8d8
commit 4da9303b17
2 changed files with 9 additions and 12 deletions

11
main.go
View File

@ -223,13 +223,11 @@ func build(m *Moby, name string) {
} }
var ( var (
conf string conf string
cmdline bool name string
name string
) )
func main() { func main() {
flag.BoolVar(&cmdline, "cmdline", false, "Print the kernel command line and exit")
flag.StringVar(&name, "name", "", "Name to use for output files") flag.StringVar(&name, "name", "", "Name to use for output files")
flag.Parse() flag.Parse()
@ -256,10 +254,5 @@ func main() {
log.Fatalf("Invalid config: %v", err) log.Fatalf("Invalid config: %v", err)
} }
if cmdline {
fmt.Printf("%s\n", m.Kernel.Cmdline)
return
}
build(m, name) build(m, name)
} }

View File

@ -20,7 +20,7 @@ func outputs(m *Moby, base string, bzimage []byte, initrd []byte) error {
for _, o := range m.Outputs { for _, o := range m.Outputs {
switch o.Format { switch o.Format {
case "kernel+initrd": case "kernel+initrd":
err := outputKernelInitrd(base, bzimage, initrd) err := outputKernelInitrd(base, bzimage, initrd, m.Kernel.Cmdline)
if err != nil { if err != nil {
return fmt.Errorf("Error writing %s output: %v", o.Format, err) return fmt.Errorf("Error writing %s output: %v", o.Format, err)
} }
@ -156,7 +156,7 @@ func outputISO(image, filename string, bzimage []byte, initrd []byte, args ...st
return nil return nil
} }
func outputKernelInitrd(base string, bzimage []byte, initrd []byte) error { func outputKernelInitrd(base string, bzimage []byte, initrd []byte, cmdline string) error {
err := ioutil.WriteFile(base+"-initrd.img", initrd, os.FileMode(0644)) err := ioutil.WriteFile(base+"-initrd.img", initrd, os.FileMode(0644))
if err != nil { if err != nil {
return err return err
@ -165,6 +165,10 @@ func outputKernelInitrd(base string, bzimage []byte, initrd []byte) error {
if err != nil { if err != nil {
return err return err
} }
fmt.Println(base + "-bzImage " + base + "-initrd.img") err = ioutil.WriteFile(base+"-cmdline", []byte(cmdline), os.FileMode(0644))
if err != nil {
return err
}
fmt.Println(base + "-bzImage " + base + "-initrd.img " + base + "-cmdline")
return nil return nil
} }