diff --git a/cmd/hakurei/command.go b/cmd/hakurei/command.go index f8173e6..e71ac16 100644 --- a/cmd/hakurei/command.go +++ b/cmd/hakurei/command.go @@ -20,7 +20,7 @@ import ( "hakurei.app/internal" "hakurei.app/internal/env" "hakurei.app/internal/outcome" - "hakurei.app/internal/state" + "hakurei.app/internal/store" "hakurei.app/message" "hakurei.app/system/dbus" ) @@ -322,7 +322,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr c.NewCommand("ps", "List active instances", func(args []string) error { var sc hst.Paths env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil)) - printPs(os.Stdout, time.Now().UTC(), state.NewMulti(msg, sc.RunDirPath), flagShort, flagJSON) + printPs(os.Stdout, time.Now().UTC(), store.NewMulti(msg, sc.RunDirPath), flagShort, flagJSON) return errSuccess }).Flag(&flagShort, "short", command.BoolFlag(false), "Print instance id") } diff --git a/cmd/hakurei/parse.go b/cmd/hakurei/parse.go index bbb9e81..8aef8e9 100644 --- a/cmd/hakurei/parse.go +++ b/cmd/hakurei/parse.go @@ -13,7 +13,7 @@ import ( "hakurei.app/hst" "hakurei.app/internal/env" "hakurei.app/internal/outcome" - "hakurei.app/internal/state" + "hakurei.app/internal/store" "hakurei.app/message" ) @@ -85,8 +85,8 @@ func tryIdentifier(msg message.Msg, name string) (config *hst.Config, entry *hst return tryIdentifierEntries(msg, name, func() map[hst.ID]*hst.State { var sc hst.Paths env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil)) - s := state.NewMulti(msg, sc.RunDirPath) - if entries, err := state.Join(s); err != nil { + s := store.NewMulti(msg, sc.RunDirPath) + if entries, err := store.Join(s); err != nil { msg.GetLogger().Printf("cannot join store: %v", err) // not fatal return nil } else { diff --git a/cmd/hakurei/print.go b/cmd/hakurei/print.go index ff4764c..15f71a6 100644 --- a/cmd/hakurei/print.go +++ b/cmd/hakurei/print.go @@ -14,7 +14,7 @@ import ( "hakurei.app/internal" "hakurei.app/internal/env" "hakurei.app/internal/outcome" - "hakurei.app/internal/state" + "hakurei.app/internal/store" "hakurei.app/message" ) @@ -168,9 +168,9 @@ func printShowInstance( } // printPs writes a representation of active instances to output. -func printPs(output io.Writer, now time.Time, s state.Store, short, flagJSON bool) { +func printPs(output io.Writer, now time.Time, s store.Store, short, flagJSON bool) { var entries map[hst.ID]*hst.State - if e, err := state.Join(s); err != nil { + if e, err := store.Join(s); err != nil { log.Fatalf("cannot join store: %v", err) } else { entries = e diff --git a/cmd/hakurei/print_test.go b/cmd/hakurei/print_test.go index abdcefc..3db06ec 100644 --- a/cmd/hakurei/print_test.go +++ b/cmd/hakurei/print_test.go @@ -6,7 +6,7 @@ import ( "time" "hakurei.app/hst" - "hakurei.app/internal/state" + "hakurei.app/internal/store" ) var ( @@ -709,6 +709,6 @@ func TestPrintPs(t *testing.T) { type stubStore map[hst.ID]*hst.State func (s stubStore) Join() (map[hst.ID]*hst.State, error) { return s, nil } -func (s stubStore) Do(int, func(c state.Cursor)) (bool, error) { panic("unreachable") } +func (s stubStore) Do(int, func(c store.Cursor)) (bool, error) { panic("unreachable") } func (s stubStore) List() ([]int, error) { panic("unreachable") } func (s stubStore) Close() error { return nil } diff --git a/internal/outcome/process.go b/internal/outcome/process.go index 6ed419a..2dc7653 100644 --- a/internal/outcome/process.go +++ b/internal/outcome/process.go @@ -15,7 +15,7 @@ import ( "hakurei.app/container/fhs" "hakurei.app/hst" "hakurei.app/internal" - "hakurei.app/internal/state" + "hakurei.app/internal/store" "hakurei.app/message" "hakurei.app/system" ) @@ -34,7 +34,7 @@ type mainState struct { // Time is nil if no process was ever created. Time *time.Time - store state.Store + store store.Store cancel context.CancelFunc cmd *exec.Cmd cmdWait chan error @@ -127,7 +127,7 @@ func (ms mainState) beforeExit(isFault bool) { } if ms.uintptr&mainNeedsRevert != 0 { - if ok, err := ms.store.Do(ms.k.state.identity.unwrap(), func(c state.Cursor) { + if ok, err := ms.store.Do(ms.k.state.identity.unwrap(), func(c store.Cursor) { if ms.uintptr&mainNeedsDestroy != 0 { if err := c.Destroy(ms.k.state.id.unwrap()); err != nil { perror(err, "destroy state entry") @@ -220,7 +220,7 @@ func (k *outcome) main(msg message.Msg) { ms.fatal("cannot commit system setup:", err) } ms.uintptr |= mainNeedsRevert - ms.store = state.NewMulti(msg, k.state.sc.RunDirPath) + ms.store = store.NewMulti(msg, k.state.sc.RunDirPath) ctx, cancel := context.WithCancel(k.ctx) defer cancel() @@ -281,7 +281,7 @@ func (k *outcome) main(msg message.Msg) { } // shim accepted setup payload, create process state - if ok, err := ms.store.Do(k.state.identity.unwrap(), func(c state.Cursor) { + if ok, err := ms.store.Do(k.state.identity.unwrap(), func(c store.Cursor) { if err := c.Save(&hst.State{ ID: k.state.id.unwrap(), PID: os.Getpid(), diff --git a/internal/state/state.go b/internal/store/compat.go similarity index 96% rename from internal/state/state.go rename to internal/store/compat.go index 62b3186..c0ef6dd 100644 --- a/internal/state/state.go +++ b/internal/store/compat.go @@ -1,5 +1,4 @@ -// Package state provides cross-process state tracking for hakurei container instances. -package state +package store import ( "strconv" diff --git a/internal/state/state_test.go b/internal/store/compat_test.go similarity index 87% rename from internal/state/state_test.go rename to internal/store/compat_test.go index eed2c89..c8e7fa4 100644 --- a/internal/state/state_test.go +++ b/internal/store/compat_test.go @@ -1,4 +1,4 @@ -package state_test +package store_test import ( "log" @@ -10,12 +10,12 @@ import ( "hakurei.app/container/check" "hakurei.app/hst" - "hakurei.app/internal/state" + "hakurei.app/internal/store" "hakurei.app/message" ) func TestMulti(t *testing.T) { - s := state.NewMulti(message.NewMsg(log.New(log.Writer(), "multi: ", 0)), check.MustAbs(t.TempDir())) + s := store.NewMulti(message.NewMsg(log.New(log.Writer(), "multi: ", 0)), check.MustAbs(t.TempDir())) t.Run("list empty store", func(t *testing.T) { if identities, err := s.List(); err != nil { @@ -43,14 +43,14 @@ func TestMulti(t *testing.T) { tc[i].Time = time.Now() } - do := func(identity int, f func(c state.Cursor)) { + do := func(identity int, f func(c store.Cursor)) { if ok, err := s.Do(identity, f); err != nil { t.Fatalf("Do: ok = %v, error = %v", ok, err) } } insert := func(i, identity int) { - do(identity, func(c state.Cursor) { + do(identity, func(c store.Cursor) { if err := c.Save(&tc[i]); err != nil { t.Fatalf("Save: error = %v", err) } @@ -58,7 +58,7 @@ func TestMulti(t *testing.T) { } check := func(i, identity int) { - do(identity, func(c state.Cursor) { + do(identity, func(c store.Cursor) { if entries, err := c.Load(); err != nil { t.Fatalf("Load: error = %v", err) } else if got, ok := entries[tc[i].ID]; !ok { @@ -98,19 +98,19 @@ func TestMulti(t *testing.T) { } // join store - if entries, err := state.Join(s); err != nil { + if entries, err := store.Join(s); err != nil { t.Fatalf("Join: error = %v", err) } else if len(entries) != 3 { t.Fatalf("Join(s) = %#v", entries) } // clear identity 1 - do(1, func(c state.Cursor) { + do(1, func(c store.Cursor) { if err := c.Destroy(tc[insertEntryOtherApp].ID); err != nil { t.Fatalf("Destroy: error = %v", err) } }) - do(1, func(c state.Cursor) { + do(1, func(c store.Cursor) { if l, err := c.Len(); err != nil { t.Fatalf("Len: error = %v", err) } else if l != 0 { diff --git a/internal/state/data.go b/internal/store/data.go similarity index 99% rename from internal/state/data.go rename to internal/store/data.go index a680c96..d8f2bc6 100644 --- a/internal/state/data.go +++ b/internal/store/data.go @@ -1,4 +1,4 @@ -package state +package store import ( "encoding/gob" diff --git a/internal/state/data_test.go b/internal/store/data_test.go similarity index 99% rename from internal/state/data_test.go rename to internal/store/data_test.go index 6ad91e5..79faeba 100644 --- a/internal/state/data_test.go +++ b/internal/store/data_test.go @@ -1,4 +1,4 @@ -package state +package store import ( "bytes" diff --git a/internal/state/header.go b/internal/store/header.go similarity index 99% rename from internal/state/header.go rename to internal/store/header.go index 25b1e6a..a6e756f 100644 --- a/internal/state/header.go +++ b/internal/store/header.go @@ -1,4 +1,4 @@ -package state +package store import ( "encoding/hex" diff --git a/internal/state/header_test.go b/internal/store/header_test.go similarity index 99% rename from internal/state/header_test.go rename to internal/store/header_test.go index 18a620c..51a6939 100644 --- a/internal/state/header_test.go +++ b/internal/store/header_test.go @@ -1,4 +1,4 @@ -package state +package store import ( "bytes" diff --git a/internal/state/join.go b/internal/store/join.go similarity index 98% rename from internal/state/join.go rename to internal/store/join.go index 43a19b1..0bb69df 100644 --- a/internal/state/join.go +++ b/internal/store/join.go @@ -1,4 +1,4 @@ -package state +package store import ( "errors" diff --git a/internal/state/segment.go b/internal/store/segment.go similarity index 99% rename from internal/state/segment.go rename to internal/store/segment.go index c8ab8c1..ef3e20c 100644 --- a/internal/state/segment.go +++ b/internal/store/segment.go @@ -1,4 +1,4 @@ -package state +package store import ( "errors" diff --git a/internal/state/segment_test.go b/internal/store/segment_test.go similarity index 99% rename from internal/state/segment_test.go rename to internal/store/segment_test.go index 834cb99..dab019a 100644 --- a/internal/state/segment_test.go +++ b/internal/store/segment_test.go @@ -1,4 +1,4 @@ -package state +package store import ( "errors" diff --git a/internal/state/store.go b/internal/store/store.go similarity index 99% rename from internal/state/store.go rename to internal/store/store.go index 565e4ee..942eeef 100644 --- a/internal/state/store.go +++ b/internal/store/store.go @@ -1,4 +1,4 @@ -package state +package store import ( "errors" diff --git a/internal/state/store_test.go b/internal/store/store_test.go similarity index 99% rename from internal/state/store_test.go rename to internal/store/store_test.go index f58be18..db1a4c7 100644 --- a/internal/state/store_test.go +++ b/internal/store/store_test.go @@ -1,4 +1,4 @@ -package state +package store import ( "cmp"