internal/outcome: rename from app
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Test / Sandbox (race detector) (push) Successful in 4m7s
				
			
		
			
				
	
				Test / Hakurei (race detector) (push) Successful in 4m55s
				
			
		
			
				
	
				Test / Flake checks (push) Successful in 1m27s
				
			
		
			
				
	
				Test / Create distribution (push) Successful in 33s
				
			
		
			
				
	
				Test / Sandbox (push) Successful in 2m11s
				
			
		
			
				
	
				Test / Hakurei (push) Successful in 3m9s
				
			
		
			
				
	
				Test / Hpkg (push) Successful in 4m1s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Test / Sandbox (race detector) (push) Successful in 4m7s
				
			Test / Hakurei (race detector) (push) Successful in 4m55s
				
			Test / Flake checks (push) Successful in 1m27s
				
			Test / Create distribution (push) Successful in 33s
				
			Test / Sandbox (push) Successful in 2m11s
				
			Test / Hakurei (push) Successful in 3m9s
				
			Test / Hpkg (push) Successful in 4m1s
				
			This is less ambiguous, and more accurately describes the purpose of the package. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
		
							parent
							
								
									a52f7038e5
								
							
						
					
					
						commit
						a0b4e47acc
					
				| @ -18,9 +18,9 @@ import ( | ||||
| 	"hakurei.app/container/fhs" | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal" | ||||
| 	"hakurei.app/internal/app" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/env" | ||||
| 	"hakurei.app/internal/outcome" | ||||
| 	"hakurei.app/internal/state" | ||||
| 	"hakurei.app/message" | ||||
| 	"hakurei.app/system/dbus" | ||||
| ) | ||||
| @ -51,7 +51,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr | ||||
| 		Flag(&flagVerbose, "v", command.BoolFlag(false), "Increase log verbosity"). | ||||
| 		Flag(&flagJSON, "json", command.BoolFlag(false), "Serialise output in JSON when applicable") | ||||
| 
 | ||||
| 	c.Command("shim", command.UsageInternal, func([]string) error { app.Shim(msg); return errSuccess }) | ||||
| 	c.Command("shim", command.UsageInternal, func([]string) error { outcome.Shim(msg); return errSuccess }) | ||||
| 
 | ||||
| 	c.Command("app", "Load and start container from configuration file", func(args []string) error { | ||||
| 		if len(args) < 1 { | ||||
| @ -64,7 +64,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr | ||||
| 			config.Container.Args = append(config.Container.Args, args[1:]...) | ||||
| 		} | ||||
| 
 | ||||
| 		app.Main(ctx, msg, config) | ||||
| 		outcome.Main(ctx, msg, config) | ||||
| 		panic("unreachable") | ||||
| 	}) | ||||
| 
 | ||||
| @ -96,7 +96,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr | ||||
| 				passwd     *user.User | ||||
| 				passwdOnce sync.Once | ||||
| 				passwdFunc = func() { | ||||
| 					us := strconv.Itoa(app.HsuUid(new(app.Hsu).MustID(msg), flagIdentity)) | ||||
| 					us := strconv.Itoa(outcome.HsuUid(new(outcome.Hsu).MustID(msg), flagIdentity)) | ||||
| 					if u, err := user.LookupId(us); err != nil { | ||||
| 						msg.Verbosef("cannot look up uid %s", us) | ||||
| 						passwd = &user.User{ | ||||
| @ -258,7 +258,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			app.Main(ctx, msg, config) | ||||
| 			outcome.Main(ctx, msg, config) | ||||
| 			panic("unreachable") | ||||
| 		}). | ||||
| 			Flag(&flagDBusConfigSession, "dbus-config", command.StringFlag("builtin"), | ||||
| @ -321,7 +321,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr | ||||
| 		var flagShort bool | ||||
| 		c.NewCommand("ps", "List active instances", func(args []string) error { | ||||
| 			var sc hst.Paths | ||||
| 			env.CopyPaths().Copy(&sc, new(app.Hsu).MustID(nil)) | ||||
| 			env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil)) | ||||
| 			printPs(os.Stdout, time.Now().UTC(), state.NewMulti(msg, sc.RunDirPath), flagShort, flagJSON) | ||||
| 			return errSuccess | ||||
| 		}).Flag(&flagShort, "short", command.BoolFlag(false), "Print instance id") | ||||
|  | ||||
| @ -11,9 +11,9 @@ import ( | ||||
| 	"syscall" | ||||
| 
 | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal/app" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/env" | ||||
| 	"hakurei.app/internal/outcome" | ||||
| 	"hakurei.app/internal/state" | ||||
| 	"hakurei.app/message" | ||||
| ) | ||||
| 
 | ||||
| @ -84,7 +84,7 @@ func shortIdentifierString(s string) string { | ||||
| func tryIdentifier(msg message.Msg, name string) (config *hst.Config, entry *hst.State) { | ||||
| 	return tryIdentifierEntries(msg, name, func() map[hst.ID]*hst.State { | ||||
| 		var sc hst.Paths | ||||
| 		env.CopyPaths().Copy(&sc, new(app.Hsu).MustID(nil)) | ||||
| 		env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil)) | ||||
| 		s := state.NewMulti(msg, sc.RunDirPath) | ||||
| 		if entries, err := state.Join(s); err != nil { | ||||
| 			msg.GetLogger().Printf("cannot join store: %v", err) // not fatal | ||||
|  | ||||
| @ -12,9 +12,9 @@ import ( | ||||
| 
 | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal" | ||||
| 	"hakurei.app/internal/app" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/env" | ||||
| 	"hakurei.app/internal/outcome" | ||||
| 	"hakurei.app/internal/state" | ||||
| 	"hakurei.app/message" | ||||
| ) | ||||
| 
 | ||||
| @ -23,7 +23,7 @@ func printShowSystem(output io.Writer, short, flagJSON bool) { | ||||
| 	t := newPrinter(output) | ||||
| 	defer t.MustFlush() | ||||
| 
 | ||||
| 	info := &hst.Info{Version: internal.Version(), User: new(app.Hsu).MustID(nil)} | ||||
| 	info := &hst.Info{Version: internal.Version(), User: new(outcome.Hsu).MustID(nil)} | ||||
| 	env.CopyPaths().Copy(&info.Paths, info.User) | ||||
| 
 | ||||
| 	if flagJSON { | ||||
|  | ||||
| @ -6,7 +6,7 @@ import ( | ||||
| 	"time" | ||||
| 
 | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/state" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @ -1,8 +1,9 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"io" | ||||
| 	"io/fs" | ||||
| 	"log" | ||||
| @ -585,6 +586,23 @@ type errorReader struct{ val error } | ||||
| 
 | ||||
| func (r errorReader) Read([]byte) (int, error) { return -1, r.val } | ||||
| 
 | ||||
| // mustMarshal returns the result of [json.Marshal] as a string and panics on error. | ||||
| func mustMarshal(v any) string { | ||||
| 	if b, err := json.Marshal(v); err != nil { | ||||
| 		panic(err.Error()) | ||||
| 	} else { | ||||
| 		return string(b) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // m is a shortcut for [check.MustAbs]. | ||||
| func m(pathname string) *check.Absolute { return check.MustAbs(pathname) } | ||||
| 
 | ||||
| // f returns [hst.FilesystemConfig] wrapped in its [json] adapter. | ||||
| func f(c hst.FilesystemConfig) hst.FilesystemConfigJSON { | ||||
| 	return hst.FilesystemConfigJSON{FilesystemConfig: c} | ||||
| } | ||||
| 
 | ||||
| // panicMsgContext implements [message.Msg] and [context.Context] with methods wrapping panic. | ||||
| // This should be assigned to test cases to be checked against. | ||||
| type panicMsgContext struct{} | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"os" | ||||
| @ -1,5 +1,4 @@ | ||||
| // Package app implements high-level hakurei container behaviour. | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @ -1,9 +1,8 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"encoding/gob" | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| @ -28,7 +27,7 @@ import ( | ||||
| 	"hakurei.app/system/dbus" | ||||
| ) | ||||
| 
 | ||||
| func TestApp(t *testing.T) { | ||||
| func TestOutcomeMain(t *testing.T) { | ||||
| 	t.Parallel() | ||||
| 	msg := message.NewMsg(nil) | ||||
| 	msg.SwapVerbose(testing.Verbose()) | ||||
| @ -653,14 +652,6 @@ func TestApp(t *testing.T) { | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func mustMarshal(v any) string { | ||||
| 	if b, err := json.Marshal(v); err != nil { | ||||
| 		panic(err.Error()) | ||||
| 	} else { | ||||
| 		return string(b) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func stubDirEntries(names ...string) (e []fs.DirEntry, err error) { | ||||
| 	e = make([]fs.DirEntry, len(names)) | ||||
| 	for i, name := range names { | ||||
| @ -930,11 +921,3 @@ func (k *stubNixOS) fatalf(format string, v ...any) { panic(fmt.Sprintf(format, | ||||
| func (k *stubNixOS) isVerbose() bool                  { return true } | ||||
| func (k *stubNixOS) verbose(v ...any)                 { log.Print(v...) } | ||||
| func (k *stubNixOS) verbosef(format string, v ...any) { log.Printf(format, v...) } | ||||
| 
 | ||||
| func m(pathname string) *check.Absolute { | ||||
| 	return check.MustAbs(pathname) | ||||
| } | ||||
| 
 | ||||
| func f(c hst.FilesystemConfig) hst.FilesystemConfigJSON { | ||||
| 	return hst.FilesystemConfigJSON{FilesystemConfig: c} | ||||
| } | ||||
| @ -1,4 +1,5 @@ | ||||
| package app | ||||
| // Package outcome implements the outcome of the privileged and container sides of a hakurei container. | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @ -16,7 +16,7 @@ import ( | ||||
| 	"hakurei.app/container/fhs" | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/state" | ||||
| 	"hakurei.app/message" | ||||
| 	"hakurei.app/system" | ||||
| ) | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| @ -118,7 +118,7 @@ func TestShimEntrypoint(t *testing.T) { | ||||
| 					spTmpdirOp{}, | ||||
| 					spAccountOp{}, | ||||
| 					&spWaylandOp{}, | ||||
| 					&spPulseOp{(*[256]byte)(bytes.Repeat([]byte{0}, pulseCookieSizeMax)), pulseCookieSizeMax}, | ||||
| 					&spPulseOp{(*[pulseCookieSizeMax]byte)(bytes.Repeat([]byte{0}, pulseCookieSizeMax)), pulseCookieSizeMax}, | ||||
| 					&spDBusOp{true}, | ||||
| 					&spFilesystemOp{}, | ||||
| 				}}, | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"os" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"syscall" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/gob" | ||||
| @ -1,4 +1,4 @@ | ||||
| package app | ||||
| package outcome | ||||
| 
 | ||||
| import ( | ||||
| 	"os" | ||||
| @ -10,7 +10,7 @@ import ( | ||||
| 
 | ||||
| 	"hakurei.app/container/check" | ||||
| 	"hakurei.app/hst" | ||||
| 	"hakurei.app/internal/app/state" | ||||
| 	"hakurei.app/internal/state" | ||||
| 	"hakurei.app/message" | ||||
| ) | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user