Documentation ¶
Overview ¶
Package aghos contains utilities for functions requiring system calls and other OS-specific APIs. OS-specific network handling should go to aghnet instead.
Index ¶
- Constants
- func ConfigureSyslog(serviceName string) (err error)
- func HaveAdminRights() (bool, error)
- func IsOpenWrt() (ok bool)
- func PIDByCommand(command string, except ...int) (pid int, err error)
- func PreCheckActionStart() (err error)
- func RunCommand(command string, arguments ...string) (code int, output []byte, err error)
- func SendShutdownSignal(c chan<- os.Signal)
- func SetGroup(groupName string) (err error)
- func SetRlimit(val uint64) (err error)
- func SetUser(userName string) (err error)
- func Unsupported(op string) (err error)
- type EmptyFSWatcher
- type FSWatcher
- type FileWalker
Constants ¶
const ( DefaultPermDir fs.FileMode = 0o700 DefaultPermExe fs.FileMode = 0o700 DefaultPermFile fs.FileMode = 0o600 )
Default file, binary, and directory permissions.
const MaxCmdOutputSize = 64 * 1024
MaxCmdOutputSize is the maximum length of performed shell command output in bytes.
Variables ¶
This section is empty.
Functions ¶
func ConfigureSyslog ¶
ConfigureSyslog reroutes standard logger output to syslog.
func HaveAdminRights ¶
HaveAdminRights checks if the current user has root (administrator) rights.
func PIDByCommand ¶ added in v0.107.0
PIDByCommand searches for process named command and returns its PID ignoring the PIDs from except. If no processes found, the error returned.
func PreCheckActionStart ¶ added in v0.107.30
func PreCheckActionStart() (err error)
PreCheckActionStart performs the service start action pre-check.
func RunCommand ¶
RunCommand runs shell command.
func SendShutdownSignal ¶ added in v0.107.37
SendShutdownSignal sends the shutdown signal to the channel.
func SetRlimit ¶
SetRlimit sets user-specified limit of how many fd's we can use.
See https://github.com/AdguardTeam/AdGuardHome/internal/issues/659.
func Unsupported ¶ added in v0.107.0
Unsupported is a helper that returns a wrapped errors.ErrUnsupported.
Types ¶
type EmptyFSWatcher ¶ added in v0.107.52
type EmptyFSWatcher struct{}
EmptyFSWatcher is a no-op implementation of the FSWatcher interface. It may be used on systems not supporting filesystem events.
func (EmptyFSWatcher) Add ¶ added in v0.107.52
func (EmptyFSWatcher) Add(_ string) (err error)
Add implements the FSWatcher interface for EmptyFSWatcher. It always returns nil error.
func (EmptyFSWatcher) Close ¶ added in v0.107.52
func (EmptyFSWatcher) Close() (err error)
Close implements the FSWatcher interface for EmptyFSWatcher. It always returns nil error.
func (EmptyFSWatcher) Events ¶ added in v0.107.52
func (EmptyFSWatcher) Events() (e <-chan event)
Events implements the FSWatcher interface for EmptyFSWatcher. It always returns nil channel.
func (EmptyFSWatcher) Start ¶ added in v0.107.52
func (EmptyFSWatcher) Start() (err error)
Start implements the FSWatcher interface for EmptyFSWatcher. It always returns nil error.
type FSWatcher ¶ added in v0.107.0
type FSWatcher interface { // Start starts watching the added files. Start() (err error) // Close stops watching the files and closes an update channel. io.Closer // Events returns the channel to notify about the file system events. Events() (e <-chan event) // Add starts tracking the file. It returns an error if the file can't be // tracked. It must not be called after Start. Add(name string) (err error) }
FSWatcher tracks all the fyle system events and notifies about those.
TODO(e.burkov, a.garipov): Move into another package like aghfs.
TODO(e.burkov): Add tests.
func NewOSWritesWatcher ¶ added in v0.107.0
NewOSWritesWatcher creates FSWatcher that tracks the real file system of the OS and notifies only about writing events.
type FileWalker ¶ added in v0.107.0
FileWalker is the signature of a function called for files in the file tree. As opposed to filepath.Walk it only walk the files (not directories) matching the provided pattern and those returned by function itself. All patterns should be valid for fs.Glob. If FileWalker returns false for cont then walking terminates. Prefer using bufio.Scanner to read the r since the input is not limited.
TODO(e.burkov, a.garipov): Move into another package like aghfs.
TODO(e.burkov): Think about passing filename or any additional data.