osmanager

package
v0.0.0-...-0e5478b Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsRoot

func IsRoot() bool

IsRoot returns true if the current user is root.

Types

type EnvironmentManager

type EnvironmentManager interface {
	// Getenv retrieves the value of the environment variable named by the key.
	Getenv(key string) string
}

EnvironmentManager defines operations for managing environment variables.

type EtcShellsManager

type EtcShellsManager interface {
	// EnsureShellInEtcShells adds the given shell path to /etc/shells if it is not already present.
	EnsureShellInEtcShells(shellPath string) error
}

EtcShellsManager defines operations for managing /etc/shells.

type FilePermissionManager

type FilePermissionManager interface {
	// SetOwnership sets ownership of a directory to a user.
	SetOwnership(path, username string) error

	// SetPermissions sets permissions for a file or directory.
	SetPermissions(path string, mode os.FileMode) error

	// GetFileOwner returns the username of the file owner.
	GetFileOwner(path string) (string, error)
}

FilePermissionManager defines operations for managing filesystem permissions.

type MoqEnvironmentManager

type MoqEnvironmentManager struct {
	// GetenvFunc mocks the Getenv method.
	GetenvFunc func(key string) string
	// contains filtered or unexported fields
}

MoqEnvironmentManager is a mock implementation of EnvironmentManager.

func TestSomethingThatUsesEnvironmentManager(t *testing.T) {

	// make and configure a mocked EnvironmentManager
	mockedEnvironmentManager := &MoqEnvironmentManager{
		GetenvFunc: func(key string) string {
			panic("mock out the Getenv method")
		},
	}

	// use mockedEnvironmentManager in code that requires EnvironmentManager
	// and then make assertions.

}

func (*MoqEnvironmentManager) Getenv

func (mock *MoqEnvironmentManager) Getenv(key string) string

Getenv calls GetenvFunc.

func (*MoqEnvironmentManager) GetenvCalls

func (mock *MoqEnvironmentManager) GetenvCalls() []struct {
	Key string
}

GetenvCalls gets all the calls that were made to Getenv. Check the length with:

len(mockedEnvironmentManager.GetenvCalls())

type MoqEtcShellsManager

type MoqEtcShellsManager struct {
	// EnsureShellInEtcShellsFunc mocks the EnsureShellInEtcShells method.
	EnsureShellInEtcShellsFunc func(shellPath string) error
	// contains filtered or unexported fields
}

MoqEtcShellsManager is a mock implementation of EtcShellsManager.

func TestSomethingThatUsesEtcShellsManager(t *testing.T) {

	// make and configure a mocked EtcShellsManager
	mockedEtcShellsManager := &MoqEtcShellsManager{
		EnsureShellInEtcShellsFunc: func(shellPath string) error {
			panic("mock out the EnsureShellInEtcShells method")
		},
	}

	// use mockedEtcShellsManager in code that requires EtcShellsManager
	// and then make assertions.

}

func (*MoqEtcShellsManager) EnsureShellInEtcShells

func (mock *MoqEtcShellsManager) EnsureShellInEtcShells(shellPath string) error

EnsureShellInEtcShells calls EnsureShellInEtcShellsFunc.

func (*MoqEtcShellsManager) EnsureShellInEtcShellsCalls

func (mock *MoqEtcShellsManager) EnsureShellInEtcShellsCalls() []struct {
	ShellPath string
}

EnsureShellInEtcShellsCalls gets all the calls that were made to EnsureShellInEtcShells. Check the length with:

len(mockedEtcShellsManager.EnsureShellInEtcShellsCalls())

type MoqFilePermissionManager

type MoqFilePermissionManager struct {
	// GetFileOwnerFunc mocks the GetFileOwner method.
	GetFileOwnerFunc func(path string) (string, error)

	// SetOwnershipFunc mocks the SetOwnership method.
	SetOwnershipFunc func(path string, username string) error

	// SetPermissionsFunc mocks the SetPermissions method.
	SetPermissionsFunc func(path string, mode os.FileMode) error
	// contains filtered or unexported fields
}

MoqFilePermissionManager is a mock implementation of FilePermissionManager.

func TestSomethingThatUsesFilePermissionManager(t *testing.T) {

	// make and configure a mocked FilePermissionManager
	mockedFilePermissionManager := &MoqFilePermissionManager{
		GetFileOwnerFunc: func(path string) (string, error) {
			panic("mock out the GetFileOwner method")
		},
		SetOwnershipFunc: func(path string, username string) error {
			panic("mock out the SetOwnership method")
		},
		SetPermissionsFunc: func(path string, mode os.FileMode) error {
			panic("mock out the SetPermissions method")
		},
	}

	// use mockedFilePermissionManager in code that requires FilePermissionManager
	// and then make assertions.

}

func (*MoqFilePermissionManager) GetFileOwner

func (mock *MoqFilePermissionManager) GetFileOwner(path string) (string, error)

GetFileOwner calls GetFileOwnerFunc.

func (*MoqFilePermissionManager) GetFileOwnerCalls

func (mock *MoqFilePermissionManager) GetFileOwnerCalls() []struct {
	Path string
}

GetFileOwnerCalls gets all the calls that were made to GetFileOwner. Check the length with:

len(mockedFilePermissionManager.GetFileOwnerCalls())

func (*MoqFilePermissionManager) SetOwnership

func (mock *MoqFilePermissionManager) SetOwnership(path string, username string) error

SetOwnership calls SetOwnershipFunc.

func (*MoqFilePermissionManager) SetOwnershipCalls

func (mock *MoqFilePermissionManager) SetOwnershipCalls() []struct {
	Path     string
	Username string
}

SetOwnershipCalls gets all the calls that were made to SetOwnership. Check the length with:

len(mockedFilePermissionManager.SetOwnershipCalls())

func (*MoqFilePermissionManager) SetPermissions

func (mock *MoqFilePermissionManager) SetPermissions(path string, mode os.FileMode) error

SetPermissions calls SetPermissionsFunc.

func (*MoqFilePermissionManager) SetPermissionsCalls

func (mock *MoqFilePermissionManager) SetPermissionsCalls() []struct {
	Path string
	Mode os.FileMode
}

SetPermissionsCalls gets all the calls that were made to SetPermissions. Check the length with:

len(mockedFilePermissionManager.SetPermissionsCalls())

type MoqOsManager

type MoqOsManager struct {
	// AddSudoAccessFunc mocks the AddSudoAccess method.
	AddSudoAccessFunc func(username string) error

	// AddUserFunc mocks the AddUser method.
	AddUserFunc func(username string) error

	// AddUserToGroupFunc mocks the AddUserToGroup method.
	AddUserToGroupFunc func(username string, group string) error

	// EnsureShellInEtcShellsFunc mocks the EnsureShellInEtcShells method.
	EnsureShellInEtcShellsFunc func(shellPath string) error

	// GetChezmoiConfigHomeFunc mocks the GetChezmoiConfigHome method.
	GetChezmoiConfigHomeFunc func() (string, error)

	// GetConfigDirFunc mocks the GetConfigDir method.
	GetConfigDirFunc func() (string, error)

	// GetCurrentUsernameFunc mocks the GetCurrentUsername method.
	GetCurrentUsernameFunc func() (string, error)

	// GetFileOwnerFunc mocks the GetFileOwner method.
	GetFileOwnerFunc func(path string) (string, error)

	// GetHomeDirFunc mocks the GetHomeDir method.
	GetHomeDirFunc func() (string, error)

	// GetProgramPathFunc mocks the GetProgramPath method.
	GetProgramPathFunc func(program string) (string, error)

	// GetProgramVersionFunc mocks the GetProgramVersion method.
	GetProgramVersionFunc func(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error)

	// GetUserShellFunc mocks the GetUserShell method.
	GetUserShellFunc func(username string) (string, error)

	// GetenvFunc mocks the Getenv method.
	GetenvFunc func(key string) string

	// ProgramExistsFunc mocks the ProgramExists method.
	ProgramExistsFunc func(program string) (bool, error)

	// SetOwnershipFunc mocks the SetOwnership method.
	SetOwnershipFunc func(path string, username string) error

	// SetPermissionsFunc mocks the SetPermissions method.
	SetPermissionsFunc func(path string, mode os.FileMode) error

	// SetUserShellFunc mocks the SetUserShell method.
	SetUserShellFunc func(username string, shellPath string) error

	// UserExistsFunc mocks the UserExists method.
	UserExistsFunc func(username string) (bool, error)
	// contains filtered or unexported fields
}

MoqOsManager is a mock implementation of OsManager.

func TestSomethingThatUsesOsManager(t *testing.T) {

	// make and configure a mocked OsManager
	mockedOsManager := &MoqOsManager{
		AddSudoAccessFunc: func(username string) error {
			panic("mock out the AddSudoAccess method")
		},
		AddUserFunc: func(username string) error {
			panic("mock out the AddUser method")
		},
		AddUserToGroupFunc: func(username string, group string) error {
			panic("mock out the AddUserToGroup method")
		},
		EnsureShellInEtcShellsFunc: func(shellPath string) error {
			panic("mock out the EnsureShellInEtcShells method")
		},
		GetChezmoiConfigHomeFunc: func() (string, error) {
			panic("mock out the GetChezmoiConfigHome method")
		},
		GetConfigDirFunc: func() (string, error) {
			panic("mock out the GetConfigDir method")
		},
		GetCurrentUsernameFunc: func() (string, error) {
			panic("mock out the GetCurrentUsername method")
		},
		GetFileOwnerFunc: func(path string) (string, error) {
			panic("mock out the GetFileOwner method")
		},
		GetHomeDirFunc: func() (string, error) {
			panic("mock out the GetHomeDir method")
		},
		GetProgramPathFunc: func(program string) (string, error) {
			panic("mock out the GetProgramPath method")
		},
		GetProgramVersionFunc: func(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error) {
			panic("mock out the GetProgramVersion method")
		},
		GetUserShellFunc: func(username string) (string, error) {
			panic("mock out the GetUserShell method")
		},
		GetenvFunc: func(key string) string {
			panic("mock out the Getenv method")
		},
		ProgramExistsFunc: func(program string) (bool, error) {
			panic("mock out the ProgramExists method")
		},
		SetOwnershipFunc: func(path string, username string) error {
			panic("mock out the SetOwnership method")
		},
		SetPermissionsFunc: func(path string, mode os.FileMode) error {
			panic("mock out the SetPermissions method")
		},
		SetUserShellFunc: func(username string, shellPath string) error {
			panic("mock out the SetUserShell method")
		},
		UserExistsFunc: func(username string) (bool, error) {
			panic("mock out the UserExists method")
		},
	}

	// use mockedOsManager in code that requires OsManager
	// and then make assertions.

}

func (*MoqOsManager) AddSudoAccess

func (mock *MoqOsManager) AddSudoAccess(username string) error

AddSudoAccess calls AddSudoAccessFunc.

func (*MoqOsManager) AddSudoAccessCalls

func (mock *MoqOsManager) AddSudoAccessCalls() []struct {
	Username string
}

AddSudoAccessCalls gets all the calls that were made to AddSudoAccess. Check the length with:

len(mockedOsManager.AddSudoAccessCalls())

func (*MoqOsManager) AddUser

func (mock *MoqOsManager) AddUser(username string) error

AddUser calls AddUserFunc.

func (*MoqOsManager) AddUserCalls

func (mock *MoqOsManager) AddUserCalls() []struct {
	Username string
}

AddUserCalls gets all the calls that were made to AddUser. Check the length with:

len(mockedOsManager.AddUserCalls())

func (*MoqOsManager) AddUserToGroup

func (mock *MoqOsManager) AddUserToGroup(username string, group string) error

AddUserToGroup calls AddUserToGroupFunc.

func (*MoqOsManager) AddUserToGroupCalls

func (mock *MoqOsManager) AddUserToGroupCalls() []struct {
	Username string
	Group    string
}

AddUserToGroupCalls gets all the calls that were made to AddUserToGroup. Check the length with:

len(mockedOsManager.AddUserToGroupCalls())

func (*MoqOsManager) EnsureShellInEtcShells

func (mock *MoqOsManager) EnsureShellInEtcShells(shellPath string) error

EnsureShellInEtcShells calls EnsureShellInEtcShellsFunc.

func (*MoqOsManager) EnsureShellInEtcShellsCalls

func (mock *MoqOsManager) EnsureShellInEtcShellsCalls() []struct {
	ShellPath string
}

EnsureShellInEtcShellsCalls gets all the calls that were made to EnsureShellInEtcShells. Check the length with:

len(mockedOsManager.EnsureShellInEtcShellsCalls())

func (*MoqOsManager) GetChezmoiConfigHome

func (mock *MoqOsManager) GetChezmoiConfigHome() (string, error)

GetChezmoiConfigHome calls GetChezmoiConfigHomeFunc.

func (*MoqOsManager) GetChezmoiConfigHomeCalls

func (mock *MoqOsManager) GetChezmoiConfigHomeCalls() []struct {
}

GetChezmoiConfigHomeCalls gets all the calls that were made to GetChezmoiConfigHome. Check the length with:

len(mockedOsManager.GetChezmoiConfigHomeCalls())

func (*MoqOsManager) GetConfigDir

func (mock *MoqOsManager) GetConfigDir() (string, error)

GetConfigDir calls GetConfigDirFunc.

func (*MoqOsManager) GetConfigDirCalls

func (mock *MoqOsManager) GetConfigDirCalls() []struct {
}

GetConfigDirCalls gets all the calls that were made to GetConfigDir. Check the length with:

len(mockedOsManager.GetConfigDirCalls())

func (*MoqOsManager) GetCurrentUsername

func (mock *MoqOsManager) GetCurrentUsername() (string, error)

GetCurrentUsername calls GetCurrentUsernameFunc.

func (*MoqOsManager) GetCurrentUsernameCalls

func (mock *MoqOsManager) GetCurrentUsernameCalls() []struct {
}

GetCurrentUsernameCalls gets all the calls that were made to GetCurrentUsername. Check the length with:

len(mockedOsManager.GetCurrentUsernameCalls())

func (*MoqOsManager) GetFileOwner

func (mock *MoqOsManager) GetFileOwner(path string) (string, error)

GetFileOwner calls GetFileOwnerFunc.

func (*MoqOsManager) GetFileOwnerCalls

func (mock *MoqOsManager) GetFileOwnerCalls() []struct {
	Path string
}

GetFileOwnerCalls gets all the calls that were made to GetFileOwner. Check the length with:

len(mockedOsManager.GetFileOwnerCalls())

func (*MoqOsManager) GetHomeDir

func (mock *MoqOsManager) GetHomeDir() (string, error)

GetHomeDir calls GetHomeDirFunc.

func (*MoqOsManager) GetHomeDirCalls

func (mock *MoqOsManager) GetHomeDirCalls() []struct {
}

GetHomeDirCalls gets all the calls that were made to GetHomeDir. Check the length with:

len(mockedOsManager.GetHomeDirCalls())

func (*MoqOsManager) GetProgramPath

func (mock *MoqOsManager) GetProgramPath(program string) (string, error)

GetProgramPath calls GetProgramPathFunc.

func (*MoqOsManager) GetProgramPathCalls

func (mock *MoqOsManager) GetProgramPathCalls() []struct {
	Program string
}

GetProgramPathCalls gets all the calls that were made to GetProgramPath. Check the length with:

len(mockedOsManager.GetProgramPathCalls())

func (*MoqOsManager) GetProgramVersion

func (mock *MoqOsManager) GetProgramVersion(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error)

GetProgramVersion calls GetProgramVersionFunc.

func (*MoqOsManager) GetProgramVersionCalls

func (mock *MoqOsManager) GetProgramVersionCalls() []struct {
	Program          string
	VersionExtractor VersionExtractor
	QueryArgs        []string
}

GetProgramVersionCalls gets all the calls that were made to GetProgramVersion. Check the length with:

len(mockedOsManager.GetProgramVersionCalls())

func (*MoqOsManager) GetUserShell

func (mock *MoqOsManager) GetUserShell(username string) (string, error)

GetUserShell calls GetUserShellFunc.

func (*MoqOsManager) GetUserShellCalls

func (mock *MoqOsManager) GetUserShellCalls() []struct {
	Username string
}

GetUserShellCalls gets all the calls that were made to GetUserShell. Check the length with:

len(mockedOsManager.GetUserShellCalls())

func (*MoqOsManager) Getenv

func (mock *MoqOsManager) Getenv(key string) string

Getenv calls GetenvFunc.

func (*MoqOsManager) GetenvCalls

func (mock *MoqOsManager) GetenvCalls() []struct {
	Key string
}

GetenvCalls gets all the calls that were made to Getenv. Check the length with:

len(mockedOsManager.GetenvCalls())

func (*MoqOsManager) ProgramExists

func (mock *MoqOsManager) ProgramExists(program string) (bool, error)

ProgramExists calls ProgramExistsFunc.

func (*MoqOsManager) ProgramExistsCalls

func (mock *MoqOsManager) ProgramExistsCalls() []struct {
	Program string
}

ProgramExistsCalls gets all the calls that were made to ProgramExists. Check the length with:

len(mockedOsManager.ProgramExistsCalls())

func (*MoqOsManager) SetOwnership

func (mock *MoqOsManager) SetOwnership(path string, username string) error

SetOwnership calls SetOwnershipFunc.

func (*MoqOsManager) SetOwnershipCalls

func (mock *MoqOsManager) SetOwnershipCalls() []struct {
	Path     string
	Username string
}

SetOwnershipCalls gets all the calls that were made to SetOwnership. Check the length with:

len(mockedOsManager.SetOwnershipCalls())

func (*MoqOsManager) SetPermissions

func (mock *MoqOsManager) SetPermissions(path string, mode os.FileMode) error

SetPermissions calls SetPermissionsFunc.

func (*MoqOsManager) SetPermissionsCalls

func (mock *MoqOsManager) SetPermissionsCalls() []struct {
	Path string
	Mode os.FileMode
}

SetPermissionsCalls gets all the calls that were made to SetPermissions. Check the length with:

len(mockedOsManager.SetPermissionsCalls())

func (*MoqOsManager) SetUserShell

func (mock *MoqOsManager) SetUserShell(username string, shellPath string) error

SetUserShell calls SetUserShellFunc.

func (*MoqOsManager) SetUserShellCalls

func (mock *MoqOsManager) SetUserShellCalls() []struct {
	Username  string
	ShellPath string
}

SetUserShellCalls gets all the calls that were made to SetUserShell. Check the length with:

len(mockedOsManager.SetUserShellCalls())

func (*MoqOsManager) UserExists

func (mock *MoqOsManager) UserExists(username string) (bool, error)

UserExists calls UserExistsFunc.

func (*MoqOsManager) UserExistsCalls

func (mock *MoqOsManager) UserExistsCalls() []struct {
	Username string
}

UserExistsCalls gets all the calls that were made to UserExists. Check the length with:

len(mockedOsManager.UserExistsCalls())

type MoqProgramQuery

type MoqProgramQuery struct {
	// GetProgramPathFunc mocks the GetProgramPath method.
	GetProgramPathFunc func(program string) (string, error)

	// GetProgramVersionFunc mocks the GetProgramVersion method.
	GetProgramVersionFunc func(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error)

	// ProgramExistsFunc mocks the ProgramExists method.
	ProgramExistsFunc func(program string) (bool, error)
	// contains filtered or unexported fields
}

MoqProgramQuery is a mock implementation of ProgramQuery.

func TestSomethingThatUsesProgramQuery(t *testing.T) {

	// make and configure a mocked ProgramQuery
	mockedProgramQuery := &MoqProgramQuery{
		GetProgramPathFunc: func(program string) (string, error) {
			panic("mock out the GetProgramPath method")
		},
		GetProgramVersionFunc: func(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error) {
			panic("mock out the GetProgramVersion method")
		},
		ProgramExistsFunc: func(program string) (bool, error) {
			panic("mock out the ProgramExists method")
		},
	}

	// use mockedProgramQuery in code that requires ProgramQuery
	// and then make assertions.

}

func (*MoqProgramQuery) GetProgramPath

func (mock *MoqProgramQuery) GetProgramPath(program string) (string, error)

GetProgramPath calls GetProgramPathFunc.

func (*MoqProgramQuery) GetProgramPathCalls

func (mock *MoqProgramQuery) GetProgramPathCalls() []struct {
	Program string
}

GetProgramPathCalls gets all the calls that were made to GetProgramPath. Check the length with:

len(mockedProgramQuery.GetProgramPathCalls())

func (*MoqProgramQuery) GetProgramVersion

func (mock *MoqProgramQuery) GetProgramVersion(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error)

GetProgramVersion calls GetProgramVersionFunc.

func (*MoqProgramQuery) GetProgramVersionCalls

func (mock *MoqProgramQuery) GetProgramVersionCalls() []struct {
	Program          string
	VersionExtractor VersionExtractor
	QueryArgs        []string
}

GetProgramVersionCalls gets all the calls that were made to GetProgramVersion. Check the length with:

len(mockedProgramQuery.GetProgramVersionCalls())

func (*MoqProgramQuery) ProgramExists

func (mock *MoqProgramQuery) ProgramExists(program string) (bool, error)

ProgramExists calls ProgramExistsFunc.

func (*MoqProgramQuery) ProgramExistsCalls

func (mock *MoqProgramQuery) ProgramExistsCalls() []struct {
	Program string
}

ProgramExistsCalls gets all the calls that were made to ProgramExists. Check the length with:

len(mockedProgramQuery.ProgramExistsCalls())

type MoqSudoManager

type MoqSudoManager struct {
	// AddSudoAccessFunc mocks the AddSudoAccess method.
	AddSudoAccessFunc func(username string) error
	// contains filtered or unexported fields
}

MoqSudoManager is a mock implementation of SudoManager.

func TestSomethingThatUsesSudoManager(t *testing.T) {

	// make and configure a mocked SudoManager
	mockedSudoManager := &MoqSudoManager{
		AddSudoAccessFunc: func(username string) error {
			panic("mock out the AddSudoAccess method")
		},
	}

	// use mockedSudoManager in code that requires SudoManager
	// and then make assertions.

}

func (*MoqSudoManager) AddSudoAccess

func (mock *MoqSudoManager) AddSudoAccess(username string) error

AddSudoAccess calls AddSudoAccessFunc.

func (*MoqSudoManager) AddSudoAccessCalls

func (mock *MoqSudoManager) AddSudoAccessCalls() []struct {
	Username string
}

AddSudoAccessCalls gets all the calls that were made to AddSudoAccess. Check the length with:

len(mockedSudoManager.AddSudoAccessCalls())

type MoqUserManager

type MoqUserManager struct {
	// AddUserFunc mocks the AddUser method.
	AddUserFunc func(username string) error

	// AddUserToGroupFunc mocks the AddUserToGroup method.
	AddUserToGroupFunc func(username string, group string) error

	// GetChezmoiConfigHomeFunc mocks the GetChezmoiConfigHome method.
	GetChezmoiConfigHomeFunc func() (string, error)

	// GetConfigDirFunc mocks the GetConfigDir method.
	GetConfigDirFunc func() (string, error)

	// GetCurrentUsernameFunc mocks the GetCurrentUsername method.
	GetCurrentUsernameFunc func() (string, error)

	// GetHomeDirFunc mocks the GetHomeDir method.
	GetHomeDirFunc func() (string, error)

	// GetUserShellFunc mocks the GetUserShell method.
	GetUserShellFunc func(username string) (string, error)

	// SetUserShellFunc mocks the SetUserShell method.
	SetUserShellFunc func(username string, shellPath string) error

	// UserExistsFunc mocks the UserExists method.
	UserExistsFunc func(username string) (bool, error)
	// contains filtered or unexported fields
}

MoqUserManager is a mock implementation of UserManager.

func TestSomethingThatUsesUserManager(t *testing.T) {

	// make and configure a mocked UserManager
	mockedUserManager := &MoqUserManager{
		AddUserFunc: func(username string) error {
			panic("mock out the AddUser method")
		},
		AddUserToGroupFunc: func(username string, group string) error {
			panic("mock out the AddUserToGroup method")
		},
		GetChezmoiConfigHomeFunc: func() (string, error) {
			panic("mock out the GetChezmoiConfigHome method")
		},
		GetConfigDirFunc: func() (string, error) {
			panic("mock out the GetConfigDir method")
		},
		GetCurrentUsernameFunc: func() (string, error) {
			panic("mock out the GetCurrentUsername method")
		},
		GetHomeDirFunc: func() (string, error) {
			panic("mock out the GetHomeDir method")
		},
		GetUserShellFunc: func(username string) (string, error) {
			panic("mock out the GetUserShell method")
		},
		SetUserShellFunc: func(username string, shellPath string) error {
			panic("mock out the SetUserShell method")
		},
		UserExistsFunc: func(username string) (bool, error) {
			panic("mock out the UserExists method")
		},
	}

	// use mockedUserManager in code that requires UserManager
	// and then make assertions.

}

func (*MoqUserManager) AddUser

func (mock *MoqUserManager) AddUser(username string) error

AddUser calls AddUserFunc.

func (*MoqUserManager) AddUserCalls

func (mock *MoqUserManager) AddUserCalls() []struct {
	Username string
}

AddUserCalls gets all the calls that were made to AddUser. Check the length with:

len(mockedUserManager.AddUserCalls())

func (*MoqUserManager) AddUserToGroup

func (mock *MoqUserManager) AddUserToGroup(username string, group string) error

AddUserToGroup calls AddUserToGroupFunc.

func (*MoqUserManager) AddUserToGroupCalls

func (mock *MoqUserManager) AddUserToGroupCalls() []struct {
	Username string
	Group    string
}

AddUserToGroupCalls gets all the calls that were made to AddUserToGroup. Check the length with:

len(mockedUserManager.AddUserToGroupCalls())

func (*MoqUserManager) GetChezmoiConfigHome

func (mock *MoqUserManager) GetChezmoiConfigHome() (string, error)

GetChezmoiConfigHome calls GetChezmoiConfigHomeFunc.

func (*MoqUserManager) GetChezmoiConfigHomeCalls

func (mock *MoqUserManager) GetChezmoiConfigHomeCalls() []struct {
}

GetChezmoiConfigHomeCalls gets all the calls that were made to GetChezmoiConfigHome. Check the length with:

len(mockedUserManager.GetChezmoiConfigHomeCalls())

func (*MoqUserManager) GetConfigDir

func (mock *MoqUserManager) GetConfigDir() (string, error)

GetConfigDir calls GetConfigDirFunc.

func (*MoqUserManager) GetConfigDirCalls

func (mock *MoqUserManager) GetConfigDirCalls() []struct {
}

GetConfigDirCalls gets all the calls that were made to GetConfigDir. Check the length with:

len(mockedUserManager.GetConfigDirCalls())

func (*MoqUserManager) GetCurrentUsername

func (mock *MoqUserManager) GetCurrentUsername() (string, error)

GetCurrentUsername calls GetCurrentUsernameFunc.

func (*MoqUserManager) GetCurrentUsernameCalls

func (mock *MoqUserManager) GetCurrentUsernameCalls() []struct {
}

GetCurrentUsernameCalls gets all the calls that were made to GetCurrentUsername. Check the length with:

len(mockedUserManager.GetCurrentUsernameCalls())

func (*MoqUserManager) GetHomeDir

func (mock *MoqUserManager) GetHomeDir() (string, error)

GetHomeDir calls GetHomeDirFunc.

func (*MoqUserManager) GetHomeDirCalls

func (mock *MoqUserManager) GetHomeDirCalls() []struct {
}

GetHomeDirCalls gets all the calls that were made to GetHomeDir. Check the length with:

len(mockedUserManager.GetHomeDirCalls())

func (*MoqUserManager) GetUserShell

func (mock *MoqUserManager) GetUserShell(username string) (string, error)

GetUserShell calls GetUserShellFunc.

func (*MoqUserManager) GetUserShellCalls

func (mock *MoqUserManager) GetUserShellCalls() []struct {
	Username string
}

GetUserShellCalls gets all the calls that were made to GetUserShell. Check the length with:

len(mockedUserManager.GetUserShellCalls())

func (*MoqUserManager) SetUserShell

func (mock *MoqUserManager) SetUserShell(username string, shellPath string) error

SetUserShell calls SetUserShellFunc.

func (*MoqUserManager) SetUserShellCalls

func (mock *MoqUserManager) SetUserShellCalls() []struct {
	Username  string
	ShellPath string
}

SetUserShellCalls gets all the calls that were made to SetUserShell. Check the length with:

len(mockedUserManager.SetUserShellCalls())

func (*MoqUserManager) UserExists

func (mock *MoqUserManager) UserExists(username string) (bool, error)

UserExists calls UserExistsFunc.

func (*MoqUserManager) UserExistsCalls

func (mock *MoqUserManager) UserExistsCalls() []struct {
	Username string
}

UserExistsCalls gets all the calls that were made to UserExists. Check the length with:

len(mockedUserManager.UserExistsCalls())

type OsManager

OsManager combines all system operation interfaces.

type ProgramQuery

type ProgramQuery interface {
	// GetProgramPath retrieves the full path of a program if it's available in one of the system's PATH directories.
	// If the program is not found, it returns an error.
	GetProgramPath(program string) (string, error)

	// ProgramExists checks if a program exists in the system's PATH directories.
	// It returns true if the program is found, false if not, and an error if there was an issue checking.
	ProgramExists(program string) (bool, error)

	// GetProgramVersion retrieves the version of a program by executing it with the provided query arguments.
	GetProgramVersion(program string, versionExtractor VersionExtractor, queryArgs ...string) (string, error)
}

type SudoManager

type SudoManager interface {
	// AddSudoAccess grants password-less sudo access to a user.
	AddSudoAccess(username string) error
}

SudoManager defines operations for managing sudo permissions.

type UnixOsManager

type UnixOsManager struct {
	// contains filtered or unexported fields
}

UnixOsManager implements OsManager for Unix-like systems.

func NewUnixOsManager

func NewUnixOsManager(
	logger logger.Logger,
	commander utils.Commander,
	escalator privilege.Escalator,
	fileSystem utils.FileSystem,
) *UnixOsManager

NewUnixOsManager creates a new UnixOsManager with injected Escalator and FileSystem. Intended for deterministic unit tests.

func (*UnixOsManager) AddSudoAccess

func (u *UnixOsManager) AddSudoAccess(username string) error

func (*UnixOsManager) AddUser

func (u *UnixOsManager) AddUser(username string) error

func (*UnixOsManager) AddUserToGroup

func (u *UnixOsManager) AddUserToGroup(username, group string) error

func (*UnixOsManager) EnsureShellInEtcShells

func (u *UnixOsManager) EnsureShellInEtcShells(shellPath string) error

func (*UnixOsManager) GetChezmoiConfigHome

func (u *UnixOsManager) GetChezmoiConfigHome() (string, error)

func (*UnixOsManager) GetConfigDir

func (u *UnixOsManager) GetConfigDir() (string, error)

func (*UnixOsManager) GetCurrentUsername

func (u *UnixOsManager) GetCurrentUsername() (string, error)

GetCurrentUsername returns the current user's username.

func (*UnixOsManager) GetFileOwner

func (u *UnixOsManager) GetFileOwner(path string) (string, error)

func (*UnixOsManager) GetHomeDir

func (u *UnixOsManager) GetHomeDir() (string, error)

func (*UnixOsManager) GetProgramPath

func (u *UnixOsManager) GetProgramPath(program string) (string, error)

func (*UnixOsManager) GetProgramVersion

func (u *UnixOsManager) GetProgramVersion(
	program string,
	versionExtractor VersionExtractor,
	queryArgs ...string,
) (string, error)

func (*UnixOsManager) GetUserShell

func (u *UnixOsManager) GetUserShell(username string) (string, error)

GetUserShell returns the default login shell for the specified user. On macOS, uses dscl. On Linux, reads /etc/passwd.

func (*UnixOsManager) Getenv

func (u *UnixOsManager) Getenv(key string) string

func (*UnixOsManager) ProgramExists

func (u *UnixOsManager) ProgramExists(program string) (bool, error)

func (*UnixOsManager) SetOwnership

func (u *UnixOsManager) SetOwnership(path, username string) error

func (*UnixOsManager) SetPermissions

func (u *UnixOsManager) SetPermissions(path string, mode os.FileMode) error

func (*UnixOsManager) SetUserShell

func (u *UnixOsManager) SetUserShell(username, shellPath string) error

SetUserShell sets the default login shell for the specified user. On macOS, uses dscl. On Linux, uses usermod -s.

func (*UnixOsManager) UserExists

func (u *UnixOsManager) UserExists(username string) (bool, error)

type UserManager

type UserManager interface {
	// AddUser creates a new user in the system.
	AddUser(username string) error

	// AddUserToGroup adds a user to a specified group.
	AddUserToGroup(username, group string) error

	// UserExists checks if a user exists in the system.
	UserExists(username string) (bool, error)

	// GetHomeDirectory returns the home directory of the current user.
	GetHomeDir() (string, error)

	// GetConfigDir returns the configuration directory of the current user.
	GetConfigDir() (string, error)

	// GetChezmoiConfigHome returns the configuration directory where chezmoi actually looks for its config.
	// This is always ~/.config regardless of XDG specification on different platforms.
	GetChezmoiConfigHome() (string, error)

	// GetCurrentUsername returns the current user's username.
	GetCurrentUsername() (string, error)

	// GetUserShell returns the default login shell for the specified user.
	GetUserShell(username string) (string, error)

	// SetUserShell sets the default login shell for the specified user.
	// On Linux, uses usermod -s. On macOS, uses dscl.
	SetUserShell(username, shellPath string) error
}

UserManager defines operations for managing system users.

type VersionExtractor

type VersionExtractor func(string) (string, error)

Jump to

Keyboard shortcuts

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