1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-04-19 12:12:26 +02:00

36 lines
1.1 KiB
Go
Raw Normal View History

package middleware
import (
"github.com/apex/log"
"github.com/apex/log/handlers/cli"
"github.com/fatih/color"
"github.com/goreleaser/goreleaser/pkg/context"
)
// Padding is a logging initial padding.
type Padding int
// DefaultInitialPadding is the default padding in the log library.
const DefaultInitialPadding Padding = 3
// ExtraPadding is the double of the DefaultInitialPadding.
const ExtraPadding = DefaultInitialPadding * 2
// Logging pretty prints the given action and its title.
// You can have different padding levels by providing different initial
// paddings. The middleware will print the title in the given padding and the
// action logs in padding+default padding.
// The default padding in the log library is 3.
// The middleware always resets to the default padding.
func Logging(title string, next Action, padding Padding) Action {
return func(ctx *context.Context) error {
defer func() {
cli.Default.Padding = int(DefaultInitialPadding)
}()
cli.Default.Padding = int(padding)
log.Infof(color.New(color.Bold).Sprint(title))
cli.Default.Padding = int(padding + DefaultInitialPadding)
return next(ctx)
}
}