summaryrefslogtreecommitdiff
path: root/internal/io/journal/reader_unsupported.go
blob: 83b4a7371fb734049f0fb3a3d2d9a67cf1294c72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//go:build !linux

// Package journal provides a journalctl-backed file reader.
package journal

import (
	"context"
	"errors"
	"runtime"

	"github.com/mimecast/dtail/internal/io/line"
	"github.com/mimecast/dtail/internal/lcontext"
	"github.com/mimecast/dtail/internal/regex"
)

// ErrUnsupported reports that journal reading is only available on Linux.
var ErrUnsupported = errors.New("journal reader is only supported on linux")

// Reader is an unsupported journal reader stub on non-Linux systems.
type Reader struct{}

// NewReader returns an unsupported error on non-Linux systems.
func NewReader(_ []string, _ string, _ bool, _ chan<- string) (*Reader, error) {
	return nil, errors.Join(ErrUnsupported, errors.New(runtime.GOOS))
}

// StartWithProcessor returns an unsupported error on non-Linux systems.
func (r *Reader) StartWithProcessor(context.Context, lcontext.LContext, line.Processor, regex.Regex) error {
	return ErrUnsupported
}

// StartWithProcessorOptimized returns an unsupported error on non-Linux systems.
func (r *Reader) StartWithProcessorOptimized(context.Context, lcontext.LContext, line.Processor, regex.Regex) error {
	return ErrUnsupported
}

// FilePath returns the journalctl command name.
func (r *Reader) FilePath() string {
	return "journalctl"
}

// Retry returns false on non-Linux systems.
func (r *Reader) Retry() bool {
	return false
}