mountlib

package
v1.66.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2024 License: MIT Imports: 29 Imported by: 16

Documentation

Overview

Package mountlib provides the mount command.

Index

Constants

View Source
const (
	MaxLeafSize = 1024 // don't pass file names longer than this
)

Global constants

Variables

View Source
var CanCheckMountReady = true

CanCheckMountReady is set if CheckMountReady is functional

View Source
var DefaultOpt = Options{
	MaxReadAhead:  128 * 1024,
	AttrTimeout:   1 * time.Second,
	NoAppleDouble: true,
	NoAppleXattr:  false,
	AsyncRead:     true,
}

DefaultOpt is the default values for creating the mount

Functions

func AddFlags added in v1.53.0

func AddFlags(flagSet *pflag.FlagSet)

AddFlags adds the non filing system specific flags to the command

func AddRc added in v1.52.0

func AddRc(mountUtilName string, mountFunction MountFn)

AddRc adds mount and unmount functionality to rc

func CheckAllowNonEmpty added in v1.62.0

func CheckAllowNonEmpty(mountpoint string, opt *Options) error

CheckAllowNonEmpty checks --allow-non-empty flag, and if not used verifies that mountpoint is empty.

func CheckMountEmpty added in v1.56.0

func CheckMountEmpty(mountpoint string) error

CheckMountEmpty checks if folder is not already a mountpoint. On Linux we use the OS-specific /proc/self/mountinfo API so the check won't access the path. Directories marked as "mounted" by autofs are considered not mounted.

func CheckMountReady added in v1.57.0

func CheckMountReady(mountpoint string) error

CheckMountReady checks whether mountpoint is mounted by rclone. Only mounts with type "rclone" or "fuse.rclone" count.

func CheckOverlap added in v1.62.0

func CheckOverlap(f fs.Fs, mountpoint string) error

CheckOverlap checks that root doesn't overlap with a mountpoint

func ClipBlocks

func ClipBlocks(b *uint64)

ClipBlocks clips the blocks pointed to the OS max

func NewMountCommand

func NewMountCommand(commandName string, hidden bool, mount MountFn) *cobra.Command

NewMountCommand makes a mount command with the given name and Mount function

func NotifyOnSigHup added in v1.56.0

func NotifyOnSigHup(sighupChan chan os.Signal)

NotifyOnSigHup makes SIGHUP notify given channel on supported systems

func WaitMountReady added in v1.57.0

func WaitMountReady(mountpoint string, timeout time.Duration, daemon *os.Process) (err error)

WaitMountReady waits until mountpoint is mounted by rclone.

If the mount daemon dies prematurely it will notice too.

Types

type MountFn added in v1.52.0

type MountFn func(VFS *vfs.VFS, mountpoint string, opt *Options) (<-chan error, func() error, error)

MountFn is called to mount the file system

func ResolveMountMethod added in v1.56.0

func ResolveMountMethod(mountType string) (string, MountFn)

ResolveMountMethod returns mount function by name

type MountInfo added in v1.53.0

type MountInfo struct {
	Fs         string    `json:"Fs"`
	MountPoint string    `json:"MountPoint"`
	MountedOn  time.Time `json:"MountedOn"`
}

MountInfo is a transitional structure for json marshaling

type MountPoint added in v1.56.0

type MountPoint struct {
	MountPoint string
	MountedOn  time.Time
	MountOpt   Options
	VFSOpt     vfscommon.Options
	Fs         fs.Fs
	VFS        *vfs.VFS
	MountFn    MountFn
	UnmountFn  UnmountFn
	ErrChan    <-chan error
}

MountPoint represents a mount with options and runtime state

func NewMountPoint added in v1.58.1

func NewMountPoint(mount MountFn, mountPoint string, f fs.Fs, mountOpt *Options, vfsOpt *vfscommon.Options) *MountPoint

NewMountPoint makes a new mounting structure

func (*MountPoint) Mount added in v1.56.0

func (m *MountPoint) Mount() (mountDaemon *os.Process, err error)

Mount the remote at mountpoint

func (*MountPoint) SetDeviceName added in v1.58.0

func (m *MountPoint) SetDeviceName(dev string)

SetDeviceName with sensible default

func (*MountPoint) SetVolumeName added in v1.56.0

func (m *MountPoint) SetVolumeName(vol string)

SetVolumeName with sensible default

func (*MountPoint) Unmount added in v1.56.0

func (m *MountPoint) Unmount() (err error)

Unmount the specified mountpoint

func (*MountPoint) Wait added in v1.56.0

func (m *MountPoint) Wait() error

Wait for mount end

type Options added in v1.53.0

type Options struct {
	DebugFUSE          bool
	AllowNonEmpty      bool
	AllowRoot          bool
	AllowOther         bool
	DefaultPermissions bool
	WritebackCache     bool
	Daemon             bool
	DaemonWait         time.Duration // time to wait for ready mount from daemon, maximum on Linux or constant on macOS/BSD
	MaxReadAhead       fs.SizeSuffix
	ExtraOptions       []string
	ExtraFlags         []string
	AttrTimeout        time.Duration // how long the kernel caches attribute for
	DeviceName         string
	VolumeName         string
	NoAppleDouble      bool
	NoAppleXattr       bool
	DaemonTimeout      time.Duration // OSXFUSE only
	AsyncRead          bool
	NetworkMode        bool // Windows only
	CaseInsensitive    fs.Tristate
}

Options for creating the mount

var Opt Options

Opt contains options set by command line flags

func (*Options) SetVolumeName added in v1.56.0

func (o *Options) SetVolumeName(vol string)

SetVolumeName removes special characters from volume name if necessary

type UnmountFn added in v1.52.0

type UnmountFn func() error

UnmountFn is called to unmount the file system

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL