Skip to content

Commit

Permalink
move email to a flag
Browse files Browse the repository at this point in the history
  • Loading branch information
pomdtr committed Jan 24, 2025
1 parent 20d5066 commit 2c20673
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 31 deletions.
2 changes: 1 addition & 1 deletion cmd/crons.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ func CronRunner() *cron.Cron {
continue
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)

command, err := wk.Command(context.Background(), job.Args...)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion cmd/email.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func NewCmdEmail() *cobra.Command {
return fmt.Errorf("failed to load app: %w", err)
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)

if err := wk.SendEmail(cmd.Context(), strings.NewReader(message.String())); err != nil {
return fmt.Errorf("failed to send email: %w", err)
Expand Down
2 changes: 1 addition & 1 deletion cmd/fetch.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func NewCmdFetch() *cobra.Command {
return fmt.Errorf("failed to load app: %w", err)
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)
if err := wk.Start(); err != nil {
return fmt.Errorf("failed to start worker: %w", err)
}
Expand Down
2 changes: 0 additions & 2 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ func NewCmdRoot(changelog string) *cobra.Command {
return "domain", v
case "SMALLWEB_REMOTE":
return "remote", v
case "SMALLWEB_EMAIL":
return "email", v
case "SMALLWEB_CUSTOM_DOMAINS":
customDomains := make(map[string]string)
for _, entry := range strings.Split(v, ";") {
Expand Down
2 changes: 1 addition & 1 deletion cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func NewCmdRun() *cobra.Command {
return fmt.Errorf("failed to load app: %w", err)
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)
command, err := wk.Command(cmd.Context(), args[1:]...)
if err != nil {
return fmt.Errorf("failed to create command: %w", err)
Expand Down
25 changes: 14 additions & 11 deletions cmd/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ func NewCmdUp() *cobra.Command {
acmednsPassword string
acmednsSubdomain string
acmednsServerURL string
email string
}

cmd := &cobra.Command{
Expand Down Expand Up @@ -132,9 +133,7 @@ func NewCmdUp() *cobra.Command {
fmt.Fprintf(os.Stderr, "Serving *.%s from %s with on-demand TLS...\n", k.String("domain"), utils.AddTilde(k.String("dir")))
go certmagic.HTTPS(nil, handler)
} else if flags.acmednsUsername != "" {
if email := k.String("email"); email != "" {
certmagic.DefaultACME.Email = email
}
certmagic.DefaultACME.Email = flags.email

certmagic.DefaultACME.DNS01Solver = &certmagic.DNS01Solver{
DNSManager: certmagic.DNSManager{
Expand Down Expand Up @@ -252,7 +251,7 @@ func NewCmdUp() *cobra.Command {
return
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)
command, err := wk.Command(sess.Context(), sess.Command()...)
if err != nil {
fmt.Fprintf(sess, "failed to get command: %v\n", err)
Expand Down Expand Up @@ -350,7 +349,7 @@ func NewCmdUp() *cobra.Command {
return fmt.Errorf("failed to load app: %v", err)
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)
if err := wk.SendEmail(context.Background(), strings.NewReader(string(data))); err != nil {
return fmt.Errorf("failed to send email: %v", err)
}
Expand Down Expand Up @@ -386,25 +385,29 @@ func NewCmdUp() *cobra.Command {
cmd.Flags().StringVar(&flags.acmednsUsername, "acmedns-username", "", "acme-dns username")
cmd.Flags().StringVar(&flags.acmednsPassword, "acmedns-password", "", "acme-dns password")
cmd.Flags().StringVar(&flags.acmednsSubdomain, "acmedns-subdomain", "", "acme-dns subdomain")
cmd.Flags().StringVar(&flags.acmednsServerURL, "acmedns-base-url", "https://auth.acme-dns.io", "acme-dns base url")
cmd.Flags().StringVar(&flags.acmednsServerURL, "acmedns-server-url", "https://auth.acme-dns.io", "acme-dns server url")
cmd.Flags().StringVar(&flags.email, "email", "", "email address for acme challenges")

cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "cert-file")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "key-file")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "http-addr")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "acmedns-username")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "acmedns-password")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "acmedns-subdomain")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "acmedns-base-url")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "acmedns-server-url")
cmd.MarkFlagsMutuallyExclusive("on-demand-tls", "email")
cmd.MarkFlagsMutuallyExclusive("cert-file", "acmedns-username")
cmd.MarkFlagsMutuallyExclusive("cert-file", "acmedns-password")
cmd.MarkFlagsMutuallyExclusive("cert-file", "acmedns-subdomain")
cmd.MarkFlagsMutuallyExclusive("cert-file", "acmedns-base-url")
cmd.MarkFlagsMutuallyExclusive("cert-file", "acmedns-server-url")
cmd.MarkFlagsMutuallyExclusive("cert-file", "email")
cmd.MarkFlagsMutuallyExclusive("key-file", "acmedns-username")
cmd.MarkFlagsMutuallyExclusive("key-file", "acmedns-password")
cmd.MarkFlagsMutuallyExclusive("key-file", "acmedns-subdomain")
cmd.MarkFlagsMutuallyExclusive("key-file", "acmedns-base-url")
cmd.MarkFlagsMutuallyExclusive("key-file", "acmedns-server-url")
cmd.MarkFlagsMutuallyExclusive("key-file", "email")
cmd.MarkFlagsRequiredTogether("cert-file", "key-file")
cmd.MarkFlagsRequiredTogether("acmedns-username", "acmedns-password", "acmedns-subdomain")
cmd.MarkFlagsRequiredTogether("acmedns-username", "acmedns-password", "acmedns-subdomain", "email")

return cmd
}
Expand Down Expand Up @@ -538,7 +541,7 @@ func (me *Handler) GetWorker(appname, rootDir, domain string) (*worker.Worker, e
return nil, fmt.Errorf("failed to load app: %w", err)
}

wk := worker.NewWorker(a, k.String("email"))
wk := worker.NewWorker(a)

wk.Logger = me.logger
if err := wk.Start(); err != nil {
Expand Down
5 changes: 0 additions & 5 deletions schemas/config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@
"type": "string"
}
},
"email": {
"description": "Admin email, used for certificate registration",
"type": "string",
"format": "email"
},
"adminApps": {
"description": "Admin apps",
"type": "array",
Expand Down
15 changes: 6 additions & 9 deletions worker/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ type Worker struct {
App app.App
Env map[string]string
StartedAt time.Time
Email string

port int
idleTimer *time.Timer
Expand All @@ -63,7 +62,7 @@ type Worker struct {
activeRequests atomic.Int32
}

func commandEnv(a app.App, email string) []string {
func commandEnv(a app.App) []string {
env := []string{}

for k, v := range a.Env {
Expand All @@ -80,7 +79,6 @@ func commandEnv(a app.App, email string) []string {
env = append(env, fmt.Sprintf("SMALLWEB_APP_NAME=%s", a.Name))
env = append(env, fmt.Sprintf("SMALLWEB_APP_DOMAIN=%s", a.Domain))
env = append(env, fmt.Sprintf("SMALLWEB_APP_URL=%s", a.URL))
env = append(env, fmt.Sprintf("SMALLWEB_EMAIL=%s", email))

if deno, ok := os.LookupEnv("DENO_EXEC_PATH"); ok {
env = append(env, fmt.Sprintf("DENO_EXEC_PATH=%s", deno))
Expand All @@ -94,10 +92,9 @@ func commandEnv(a app.App, email string) []string {
return env
}

func NewWorker(app app.App, email string) *Worker {
func NewWorker(app app.App) *Worker {
worker := &Worker{
App: app,
Email: email,
App: app,
}

return worker
Expand Down Expand Up @@ -192,7 +189,7 @@ func (me *Worker) Start() error {

command := exec.Command(deno, args...)
command.Dir = me.App.Dir()
command.Env = commandEnv(me.App, me.Email)
command.Env = commandEnv(me.App)

stdoutPipe, err := command.StdoutPipe()
if err != nil {
Expand Down Expand Up @@ -506,7 +503,7 @@ func (me *Worker) Command(ctx context.Context, args ...string) (*exec.Cmd, error
command := exec.CommandContext(ctx, deno, denoArgs...)
command.Dir = me.App.Dir()

command.Env = commandEnv(me.App, me.Email)
command.Env = commandEnv(me.App)

return command, nil
}
Expand Down Expand Up @@ -535,7 +532,7 @@ func (me *Worker) SendEmail(ctx context.Context, message io.Reader) error {
command := exec.CommandContext(ctx, deno, denoArgs...)
command.Dir = me.App.Dir()
command.Stderr = os.Stderr
command.Env = commandEnv(me.App, me.Email)
command.Env = commandEnv(me.App)

stdin, err := command.StdinPipe()
if err != nil {
Expand Down

0 comments on commit 2c20673

Please sign in to comment.