summaryrefslogtreecommitdiff
path: root/internal/jailmgr
diff options
context:
space:
mode:
Diffstat (limited to 'internal/jailmgr')
-rw-r--r--internal/jailmgr/jailmgr.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/internal/jailmgr/jailmgr.go b/internal/jailmgr/jailmgr.go
index b6a5d28..9ddf9b8 100644
--- a/internal/jailmgr/jailmgr.go
+++ b/internal/jailmgr/jailmgr.go
@@ -16,8 +16,8 @@ import (
// WriteConf renders jail.conf.d/<app>.conf and the jail's own rc.d service
// script + rc.conf enable line. Called once, from `skiff new-app`.
-func WriteConf(cfg layout.Config, app, ip string) error {
- conf, err := tmpl.JailConf(tmpl.JailConfData{Name: app, JailRoot: cfg.JailRoot(app), IP: ip})
+func WriteConf(cfg layout.Config, app, ip, iface string) error {
+ conf, err := tmpl.JailConf(tmpl.JailConfData{Name: app, JailRoot: cfg.JailRoot(app), IP: ip, Iface: iface})
if err != nil {
return err
}
@@ -49,6 +49,21 @@ func WriteConf(cfg layout.Config, app, ip string) error {
return nil
}
+// EnableMail appends a MAILNAME line to the jail's dma.conf, inherited from
+// the base image's SMARTHOST/PORT/AUTHPATH/SECURETRANSFER/STARTTLS. Called
+// once, from `skiff new-app`.
+func EnableMail(cfg layout.Config, app string) error {
+ f, err := os.OpenFile(cfg.DMAConfPath(app), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ if err != nil {
+ return fmt.Errorf("open jail dma.conf: %w", err)
+ }
+ defer f.Close()
+ if _, err := fmt.Fprintf(f, "\nMAILNAME %s.skiff.local\n", app); err != nil {
+ return fmt.Errorf("set MAILNAME in jail dma.conf: %w", err)
+ }
+ return nil
+}
+
func Start(ctx context.Context, out io.Writer, app string) error {
return sh.Run(ctx, out, "", "service", "jail", "start", app)
}