Move utils into shared folder

This commit is contained in:
Melody Becker 2025-04-05 12:21:44 +02:00
parent 500bf48295
commit c25f27e82e
Signed by: mstar
SSH key fingerprint: SHA256:vkXfS9FG2pVNVfvDrzd1VW9n8VJzqqdKQGljxxX8uK8
22 changed files with 111 additions and 137 deletions

35
shared/fswrapper.go Normal file
View file

@ -0,0 +1,35 @@
package shared
import (
"io/fs"
"github.com/rs/zerolog/log"
)
// Fix for go:embed file systems including the full path of the embedded files
// Adds a given string to the front of all requests
type FSWrapper struct {
wrapped fs.FS
toAdd string
log bool
}
func NewFSWrapper(wraps fs.FS, appends string, logAccess bool) *FSWrapper {
return &FSWrapper{
wrapped: wraps,
toAdd: appends,
log: logAccess,
}
}
func (fs *FSWrapper) Open(name string) (fs.File, error) {
res, err := fs.wrapped.Open(fs.toAdd + name)
if fs.log {
log.Debug().
Str("prefix", fs.toAdd).
Str("filename", name).
Err(err).
Msg("fswrapper: File access result")
}
return res, err
}

15
shared/tagsFromString.go Normal file
View file

@ -0,0 +1,15 @@
package shared
import (
"regexp"
"strings"
"git.mstar.dev/mstar/goutils/sliceutils"
)
var tagRegex = regexp.MustCompile(`#(\w+)`)
func TagsFromText(text string) []string {
matches := tagRegex.FindAllString(text, -1)
return sliceutils.Map(matches, func(t string) string { return strings.TrimPrefix(t, "#") })
}

20
shared/tracing.go Normal file
View file

@ -0,0 +1,20 @@
package shared
import (
"github.com/rs/zerolog"
)
func Trace(l *zerolog.Logger) *zerolog.Logger {
if e := l.Trace(); e.Enabled() {
e.Caller(2).
Msg("Entered function")
}
return l
}
func Untrace(l *zerolog.Logger) {
if e := l.Trace(); e.Enabled() {
e.Caller(2).
Msg("Exited function")
}
}

21
shared/zerologPasskey.go Normal file
View file

@ -0,0 +1,21 @@
package shared
import "github.com/rs/zerolog/log"
type ZerologWrapper struct{}
func (z *ZerologWrapper) Errorf(format string, args ...any) {
log.Error().Msgf(format, args...)
}
func (z *ZerologWrapper) Debugf(format string, args ...any) {
log.Debug().Msgf(format, args...)
}
func (z *ZerologWrapper) Infof(format string, args ...any) {
log.Info().Msgf(format, args...)
}
func (z *ZerologWrapper) Warnf(format string, args ...any) {
log.Warn().Msgf(format, args...)
}