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"
|
"path/filepath"
|
||||||
|
|
||||||
wisski_distillery "github.com/FAU-CDI/wisski-distillery"
|
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/internal/core"
|
||||||
"github.com/FAU-CDI/wisski-distillery/pkg/fsx"
|
"github.com/FAU-CDI/wisski-distillery/pkg/fsx"
|
||||||
"github.com/FAU-CDI/wisski-distillery/pkg/hostname"
|
"github.com/FAU-CDI/wisski-distillery/pkg/hostname"
|
||||||
|
|
@ -188,11 +188,11 @@ func (bs bootstrap) Run(context wisski_distillery.Context) error {
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
|
||||||
var config cfg.Config
|
var cfg config.Config
|
||||||
if err := config.Unmarshal(f); err != nil {
|
if err := cfg.Unmarshal(f); err != nil {
|
||||||
return errBootstrapOpenConfig.WithMessageF(err)
|
return errBootstrapOpenConfig.WithMessageF(err)
|
||||||
}
|
}
|
||||||
context.Println(config)
|
context.Println(cfg)
|
||||||
|
|
||||||
// Tell the user how to proceed
|
// Tell the user how to proceed
|
||||||
logging.LogMessage(context.IOStream, "Bootstrap is complete")
|
logging.LogMessage(context.IOStream, "Bootstrap is complete")
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config is the configuration command
|
// 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{
|
return wisski_distillery.Description{
|
||||||
Requirements: core.Requirements{
|
Requirements: core.Requirements{
|
||||||
NeedsDistillery: true,
|
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)
|
context.Printf("%#v", context.Environment.Config)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import (
|
||||||
|
|
||||||
wisski_distillery "github.com/FAU-CDI/wisski-distillery"
|
wisski_distillery "github.com/FAU-CDI/wisski-distillery"
|
||||||
"github.com/FAU-CDI/wisski-distillery/internal/component"
|
"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/internal/core"
|
||||||
"github.com/FAU-CDI/wisski-distillery/pkg/execx"
|
"github.com/FAU-CDI/wisski-distillery/pkg/execx"
|
||||||
"github.com/FAU-CDI/wisski-distillery/pkg/logging"
|
"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 {
|
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.Printf("[copy] %s\n", dst)
|
||||||
})
|
})
|
||||||
}, context.IOStream, "Unpacking Runtime Components"); err != nil {
|
}, context.IOStream, "Unpacking Runtime Components"); err != nil {
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,6 @@ type Component interface {
|
||||||
// By convention it is /var/www/deploy/internal/core/${Name()}
|
// By convention it is /var/www/deploy/internal/core/${Name()}
|
||||||
Path() string
|
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.
|
// 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.
|
// Typically this should just pass through the parent, but might perform other tasks.
|
||||||
Context(parent InstallationContext) InstallationContext
|
Context(parent InstallationContext) InstallationContext
|
||||||
|
|
@ -40,6 +35,16 @@ type Component interface {
|
||||||
Base() *ComponentBase
|
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
|
// ComponentBase implements base functionality for a component
|
||||||
type ComponentBase struct {
|
type ComponentBase struct {
|
||||||
Dir string // Dir is the directory this component lives in
|
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
|
return *field
|
||||||
}
|
}
|
||||||
|
|
||||||
// Components returns all components of the distillery
|
// Components returns all components that have a stack function
|
||||||
func (dis *Distillery) Components() []component.Component {
|
func (dis *Distillery) Components() []component.ComponentWithStack {
|
||||||
return []component.Component{
|
return []component.ComponentWithStack{
|
||||||
dis.Web(),
|
dis.Web(),
|
||||||
dis.Self(),
|
dis.Self(),
|
||||||
dis.Resolver(),
|
dis.Resolver(),
|
||||||
|
|
|
||||||
|
|
@ -242,7 +242,7 @@ func (instance Instance) Stack() component.Installable {
|
||||||
"LETSENCRYPT_HOST": instance.dis.Config.IfHttps(instance.Domain()),
|
"LETSENCRYPT_HOST": instance.dis.Config.IfHttps(instance.Domain()),
|
||||||
"LETSENCRYPT_EMAIL": instance.dis.Config.IfHttps(instance.dis.Config.CertbotEmail),
|
"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,
|
"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