package server import ( "context" "embed" "io" "path/filepath" "syscall" "github.com/FAU-CDI/wisski-distillery/internal/bootstrap" "github.com/FAU-CDI/wisski-distillery/internal/dis/component" ) func (server *Server) Path() string { return filepath.Join(component.GetStill(server).Config.Paths.Root, "core", "dis") } //go:embed all:server var resources embed.FS func (server *Server) Stack() component.StackWithResources { config := component.GetStill(server).Config return component.MakeStack(server, component.StackWithResources{ Resources: resources, ContextPath: "server", EnvContext: map[string]string{ "DOCKER_NETWORK_NAME": config.Docker.Network(), "HOST_RULE": config.HTTP.PanelHostRule(), "HTTPS_ENABLED": config.HTTP.HTTPSEnabledEnv(), "CONFIG_PATH": config.ConfigPath, "DEPLOY_ROOT": config.Paths.Root, "SELF_OVERRIDES_FILE": config.Paths.OverridesJSON, "SELF_RESOLVER_BLOCK_FILE": config.Paths.ResolverBlocks, "CUSTOM_ASSETS_PATH": server.dependencies.Templating.CustomAssetsPath(), }, CopyContextFiles: []string{bootstrap.Executable}, }) } // Trigger triggers the active cron run to immediatly invoke cron. func (server *Server) Trigger(ctx context.Context) error { return server.Stack().Kill(ctx, io.Discard, "control", syscall.SIGHUP) } func (server *Server) Context(parent component.InstallationContext) component.InstallationContext { return component.InstallationContext{ bootstrap.Executable: component.GetStill(server).Config.Paths.CurrentExecutable(), // TODO: Does this make sense? } }