Move runtime around
This commit is contained in:
parent
ef1243ea39
commit
feacd4eeae
18 changed files with 39 additions and 35 deletions
|
|
@ -7,7 +7,7 @@ import (
|
|||
"path/filepath"
|
||||
|
||||
wisski_distillery "github.com/FAU-CDI/wisski-distillery"
|
||||
cfg "github.com/FAU-CDI/wisski-distillery/internal/config"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/config"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/core"
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/fsx"
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/hostname"
|
||||
|
|
@ -188,11 +188,11 @@ func (bs bootstrap) Run(context wisski_distillery.Context) error {
|
|||
}
|
||||
defer f.Close()
|
||||
|
||||
var config cfg.Config
|
||||
if err := config.Unmarshal(f); err != nil {
|
||||
var cfg config.Config
|
||||
if err := cfg.Unmarshal(f); err != nil {
|
||||
return errBootstrapOpenConfig.WithMessageF(err)
|
||||
}
|
||||
context.Println(config)
|
||||
context.Println(cfg)
|
||||
|
||||
// Tell the user how to proceed
|
||||
logging.LogMessage(context.IOStream, "Bootstrap is complete")
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ import (
|
|||
)
|
||||
|
||||
// Config is the configuration command
|
||||
var Config wisski_distillery.Command = config{}
|
||||
var Config wisski_distillery.Command = cfg{}
|
||||
|
||||
type config struct {
|
||||
type cfg struct {
|
||||
}
|
||||
|
||||
func (s config) Description() wisski_distillery.Description {
|
||||
func (s cfg) Description() wisski_distillery.Description {
|
||||
return wisski_distillery.Description{
|
||||
Requirements: core.Requirements{
|
||||
NeedsDistillery: true,
|
||||
|
|
@ -21,7 +21,7 @@ func (s config) Description() wisski_distillery.Description {
|
|||
}
|
||||
}
|
||||
|
||||
func (s config) Run(context wisski_distillery.Context) error {
|
||||
func (s cfg) Run(context wisski_distillery.Context) error {
|
||||
context.Printf("%#v", context.Environment.Config)
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
|
||||
wisski_distillery "github.com/FAU-CDI/wisski-distillery"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/component"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/config"
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/core"
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/execx"
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/logging"
|
||||
|
|
@ -142,7 +143,7 @@ func (si systemupdate) Run(context wisski_distillery.Context) error {
|
|||
}
|
||||
|
||||
if err := logging.LogOperation(func() error {
|
||||
return unpack.InstallDir(dis.RuntimeDir(), "runtime", core.Runtime, func(dst, src string) {
|
||||
return unpack.InstallDir(dis.Config.RuntimeDir(), "runtime", config.Runtime, func(dst, src string) {
|
||||
context.Printf("[copy] %s\n", dst)
|
||||
})
|
||||
}, context.IOStream, "Unpacking Runtime Components"); err != nil {
|
||||
|
|
|
|||
|
|
@ -26,11 +26,6 @@ type Component interface {
|
|||
// By convention it is /var/www/deploy/internal/core/${Name()}
|
||||
Path() string
|
||||
|
||||
// Stack can be used to gain access to the "docker compose" stack.
|
||||
//
|
||||
// This should internally call
|
||||
Stack() Installable
|
||||
|
||||
// Context returns a new InstallationContext to be used during installation from the command line.
|
||||
// Typically this should just pass through the parent, but might perform other tasks.
|
||||
Context(parent InstallationContext) InstallationContext
|
||||
|
|
@ -40,6 +35,16 @@ type Component interface {
|
|||
Base() *ComponentBase
|
||||
}
|
||||
|
||||
// ComponentWithStack implements a component with a Stack method.
|
||||
type ComponentWithStack interface {
|
||||
Component
|
||||
|
||||
// Stack can be used to gain access to the "docker compose" stack.
|
||||
//
|
||||
// This should internally call
|
||||
Stack() Installable
|
||||
}
|
||||
|
||||
// ComponentBase implements base functionality for a component
|
||||
type ComponentBase struct {
|
||||
Dir string // Dir is the directory this component lives in
|
||||
|
|
|
|||
15
internal/config/runtime.go
Normal file
15
internal/config/runtime.go
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Runtime contains runtime resources to be installed into any instance
|
||||
//go:embed all:runtime
|
||||
var Runtime embed.FS
|
||||
|
||||
// RuntimeDir returns the path to the runtime directory
|
||||
func (cfg Config) RuntimeDir() string {
|
||||
return filepath.Join(cfg.DeployRoot, "runtime")
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package core
|
||||
|
||||
import (
|
||||
"embed"
|
||||
)
|
||||
|
||||
// Runtime contains runtime resources to be installed into any instance
|
||||
//go:embed all:runtime
|
||||
var Runtime embed.FS
|
||||
|
|
@ -72,9 +72,9 @@ func makeComponent[C component.Component](dis *Distillery, field *C, init func(C
|
|||
return *field
|
||||
}
|
||||
|
||||
// Components returns all components of the distillery
|
||||
func (dis *Distillery) Components() []component.Component {
|
||||
return []component.Component{
|
||||
// Components returns all components that have a stack function
|
||||
func (dis *Distillery) Components() []component.ComponentWithStack {
|
||||
return []component.ComponentWithStack{
|
||||
dis.Web(),
|
||||
dis.Self(),
|
||||
dis.Resolver(),
|
||||
|
|
|
|||
|
|
@ -242,7 +242,7 @@ func (instance Instance) Stack() component.Installable {
|
|||
"LETSENCRYPT_HOST": instance.dis.Config.IfHttps(instance.Domain()),
|
||||
"LETSENCRYPT_EMAIL": instance.dis.Config.IfHttps(instance.dis.Config.CertbotEmail),
|
||||
|
||||
"RUNTIME_DIR": instance.dis.RuntimeDir(),
|
||||
"RUNTIME_DIR": instance.dis.Config.RuntimeDir(),
|
||||
"GLOBAL_AUTHORIZED_KEYS_FILE": instance.dis.Config.GlobalAuthorizedKeysFile,
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
package wisski
|
||||
|
||||
import "path/filepath"
|
||||
|
||||
// RuntimeDir returns the path to the runtime directory
|
||||
func (dis *Distillery) RuntimeDir() string {
|
||||
return filepath.Join(dis.Config.DeployRoot, "runtime")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue