Skip to content

Commit

Permalink
Merge pull request #7820 from mvo5/boot-modeenv-kernel
Browse files Browse the repository at this point in the history
boot: add boot.Modeenv.Kernel support
  • Loading branch information
mvo5 authored Dec 3, 2019
2 parents 6f46305 + 13e0b7b commit fa16b1e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
6 changes: 6 additions & 0 deletions boot/modeenv.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ type Modeenv struct {
Mode string
RecoverySystem string
Base string
Kernel string
}

func ReadModeenv(rootdir string) (*Modeenv, error) {
Expand All @@ -49,10 +50,12 @@ func ReadModeenv(rootdir string) (*Modeenv, error) {
recoverySystem, _ := cfg.Get("", "recovery_system")
mode, _ := cfg.Get("", "mode")
base, _ := cfg.Get("", "base")
kernel, _ := cfg.Get("", "kernel")
return &Modeenv{
Mode: mode,
RecoverySystem: recoverySystem,
Base: base,
Kernel: kernel,
}, nil
}

Expand All @@ -72,6 +75,9 @@ func (m *Modeenv) Write(rootdir string) error {
if m.Base != "" {
fmt.Fprintf(buf, "base=%s\n", m.Base)
}
if m.Kernel != "" {
fmt.Fprintf(buf, "kernel=%s\n", m.Kernel)
}
if err := osutil.AtomicWriteFile(modeenvPath, buf.Bytes(), 0644, 0); err != nil {
return err
}
Expand Down
4 changes: 4 additions & 0 deletions boot/modeenv_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,15 @@ func (s *modeenvSuite) TestReadModeWithBase(c *C) {
s.makeMockModeenvFile(c, `mode=recovery
recovery_system=20191126
base=core20_123.snap
kernel=pc-kernel_987.snap
`)

modeenv, err := boot.ReadModeenv(s.tmpdir)
c.Assert(err, IsNil)
c.Check(modeenv.Mode, Equals, "recovery")
c.Check(modeenv.RecoverySystem, Equals, "20191126")
c.Check(modeenv.Base, Equals, "core20_123.snap")
c.Check(modeenv.Kernel, Equals, "pc-kernel_987.snap")
}

func (s *modeenvSuite) TestWriteNonExisting(c *C) {
Expand Down Expand Up @@ -131,12 +133,14 @@ func (s *modeenvSuite) TestWriteNonExistingFull(c *C) {
Mode: "run",
RecoverySystem: "20191128",
Base: "core20_321.snap",
Kernel: "pc-kernel_456.snap",
}
err := modeenv.Write(s.tmpdir)
c.Assert(err, IsNil)

c.Assert(s.mockModeenvPath, testutil.FileEquals, `mode=run
recovery_system=20191128
base=core20_321.snap
kernel=pc-kernel_456.snap
`)
}

0 comments on commit fa16b1e

Please sign in to comment.