d2/lib/time/time.go
2023-06-14 13:06:40 -07:00

26 lines
561 B
Go

package time
import (
"context"
"time"
"oss.terrastruct.com/d2/lib/env"
)
func HumanDate(t time.Time) string {
local := t.Local()
return local.Format(time.RFC822)
}
// WithTimeout returns context.WithTimeout(ctx, timeout) but timeout is overridden with D2_TIMEOUT if set
func WithTimeout(ctx context.Context, timeout time.Duration) (context.Context, context.CancelFunc) {
t := timeout
if seconds, has := env.Timeout(); has {
t = time.Duration(seconds) * time.Second
}
if t <= 0 {
return ctx, func() {}
}
return context.WithTimeout(ctx, t)
}