Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import (
"encoding/json"
"errors"
"fmt"
"log/slog"
"os"

log "github.com/fclairamb/go-log"

"github.com/fclairamb/ftpserver/config/confpar"
"github.com/fclairamb/ftpserver/fs"

Expand All @@ -24,12 +23,12 @@ var ErrUnknownUser = errors.New("unknown user")
// Config provides the general server config
type Config struct {
fileName string
logger log.Logger
logger *slog.Logger
Content *confpar.Content
}

// NewConfig creates a new config instance
func NewConfig(fileName string, logger log.Logger) (*Config, error) {
func NewConfig(fileName string, logger *slog.Logger) (*Config, error) {
if fileName == "" {
fileName = "ftpserver.json"
}
Expand All @@ -48,7 +47,7 @@ func NewConfig(fileName string, logger log.Logger) (*Config, error) {

// FromContent creates a new config instance from a pre-created Content and logger. The
// fileName should indicate origin of the given Content, but the file will never be opened.
func FromContent(content *confpar.Content, fileName string, logger log.Logger) (*Config, error) {
func FromContent(content *confpar.Content, fileName string, logger *slog.Logger) (*Config, error) {
c := &Config{
fileName: fileName,
logger: logger,
Expand Down
6 changes: 3 additions & 3 deletions fs/fs.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package fs

import (
"fmt"
"log/slog"

snd "github.com/fclairamb/afero-snd"
log "github.com/fclairamb/go-log"
"github.com/spf13/afero"

"github.com/fclairamb/ftpserver/config/confpar"
Expand All @@ -30,7 +30,7 @@ func (err UnsupportedFsError) Error() string {
}

// LoadFs loads a file system from an access description
func LoadFs(access *confpar.Access, logger log.Logger) (afero.Fs, error) {
func LoadFs(access *confpar.Access, logger *slog.Logger) (afero.Fs, error) {
var fs afero.Fs
var err error

Expand Down Expand Up @@ -72,7 +72,7 @@ func LoadFs(access *confpar.Access, logger log.Logger) (afero.Fs, error) {
fs, err = snd.NewFs(&snd.Config{
Destination: fs,
Temporary: temp,
Logger: logger.With("component", "snd"),
Logger: nil,
})
}

Expand Down
19 changes: 9 additions & 10 deletions fs/fslog/fslog.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,28 @@
package fslog

import (
"log/slog"
"os"
"time"

"github.com/spf13/afero"

log "github.com/fclairamb/go-log"
)

// File is a wrapper to log interactions around file accesses
type File struct {
src afero.File // Source file
logger log.Logger // Associated logger
lengthRead int // Length read
lengthWritten int // Length written
src afero.File // Source file
logger *slog.Logger // Associated logger
lengthRead int // Length read
lengthWritten int // Length written
}

// Fs is a wrapper to log interactions around file system accesses
type Fs struct {
src afero.Fs // Source file system
logger log.Logger // Associated logger
src afero.Fs // Source file system
logger *slog.Logger // Associated logger
}

func logErr(logger log.Logger, err error) log.Logger {
func logErr(logger *slog.Logger, err error) *slog.Logger {
if err != nil {
return logger.With("err", err, "failed", true)
}
Expand Down Expand Up @@ -234,7 +233,7 @@ func (f *File) WriteString(str string) (int, error) {
}

// LoadFS creates an instance with logging
func LoadFS(src afero.Fs, logger log.Logger) (afero.Fs, error) {
func LoadFS(src afero.Fs, logger *slog.Logger) (afero.Fs, error) {
return &Fs{
src: src,
logger: logger,
Expand Down
6 changes: 2 additions & 4 deletions fs/gdrive/gdrive.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"os"

drv "github.com/fclairamb/afero-gdrive"
drvoa "github.com/fclairamb/afero-gdrive/oauthhelper"
log "github.com/fclairamb/go-log"
"github.com/spf13/afero"
"golang.org/x/oauth2"

Expand All @@ -22,7 +22,7 @@ import (
var ErrMissingGoogleClientCredentials = errors.New("missing the google client credentials")

// LoadFs loads a file system from an access description
func LoadFs(access *confpar.Access, logger log.Logger) (afero.Fs, error) {
func LoadFs(access *confpar.Access, logger *slog.Logger) (afero.Fs, error) {
googleClientID := access.Params["google_client_id"]
googleClientSecret := access.Params["google_client_secret"]
tokenFile := access.Params["token_file"]
Expand Down Expand Up @@ -91,8 +91,6 @@ func LoadFs(access *confpar.Access, logger log.Logger) (afero.Fs, error) {
return nil, err
}

gdriveFs.Logger = logger

// Allowing to set the basePath in the driver
if basePath != "" {
basePath = utils.ReplaceEnvVars(basePath)
Expand Down
6 changes: 3 additions & 3 deletions fs/telegram/telegram.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"io"
"log/slog"
"path/filepath"
"strconv"
"strings"
Expand All @@ -13,7 +14,6 @@ import (
"sync/atomic"
"time"

log "github.com/fclairamb/go-log"
tele "gopkg.in/telebot.v3"

"github.com/spf13/afero"
Expand All @@ -38,7 +38,7 @@ type Fs struct {
// ChatID is the telegram chat ID to send files to
ChatID int64
// Logger is the logger, obviously
Logger log.Logger
Logger *slog.Logger

// fakeFs is a lightweight fake filesystem intended for store temporary info about files
// since some ftp clients expect to perform mkdir() + stat() on files and directories before upload
Expand Down Expand Up @@ -70,7 +70,7 @@ var textExtensions = []string{".txt", ".md"}
var audioExtensions = []string{".mp3", ".ogg", ".flac", ".wav", ".m4a", ".opus"}

// LoadFs loads a file system from an access description
func LoadFs(access *confpar.Access, logger log.Logger) (afero.Fs, error) {
func LoadFs(access *confpar.Access, logger *slog.Logger) (afero.Fs, error) {

token := access.Params["Token"]
if token == "" {
Expand Down
9 changes: 3 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/fclairamb/ftpserver

go 1.24.0
go 1.25.0

toolchain go1.25.5

Expand All @@ -12,8 +12,7 @@ require (
github.com/fclairamb/afero-gdrive v0.3.0
github.com/fclairamb/afero-s3 v0.3.1
github.com/fclairamb/afero-snd v0.1.0
github.com/fclairamb/ftpserverlib v0.27.1
github.com/fclairamb/go-log v0.6.0
github.com/fclairamb/ftpserverlib v0.28.0
github.com/go-crypt/crypt v0.4.7
github.com/go-mail/mail v2.3.1+incompatible
github.com/pkg/sftp v1.13.10
Expand Down Expand Up @@ -59,7 +58,6 @@ require (
github.com/tidwall/gjson v1.14.4 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/zeebo/errs v1.4.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.38.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
Expand All @@ -78,8 +76,7 @@ require (

require (
github.com/dropbox/dropbox-sdk-go-unofficial v5.6.0+incompatible // indirect
github.com/go-kit/log v0.2.1
github.com/go-logfmt/logfmt v0.6.0 // indirect
github.com/fclairamb/go-log v0.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
Expand Down
Loading