package shellgetter
import "github.com/oslokommune/okctl/pkg/virtualenv/shellgetter"
Package shellgetter implements functionality for deciding which shell is the primary shell of the provided environment.
Index ¶
Types ¶
type DefaultMacOsShellGetter ¶
type DefaultMacOsShellGetter struct { UserHomeDir string }
DefaultMacOsShellGetter is the default implementation for getting the user's login shell on macOS
func (*DefaultMacOsShellGetter) RunDsclUserShell ¶
func (m *DefaultMacOsShellGetter) RunDsclUserShell() (string, error)
RunDsclUserShell returns the user's login shell as returned by dscl. Example: "UserShell: /bin/bash"
type MacOsUserShellCmdGetter ¶
MacOsUserShellCmdGetter gets the user's login shell on macOS
func NewMacOsCmdGetter ¶
func NewMacOsCmdGetter(userHomeDir string) MacOsUserShellCmdGetter
NewMacOsCmdGetter returns a MacOsUserShellCmdGetter
type Os ¶
type Os int
Os specifies which operating system is being referred
const ( // OsLinux represents the Linux OS OsLinux Os = iota // OsDarwin represents the Darwin OS OsDarwin // OsUnknown represents an unknown OS OsUnknown )
type Shell ¶
Shell contains data about a shell executable (like bash)
type ShellGetter ¶
type ShellGetter struct { Os Os UserHomeDir string OsEnvVars map[string]string EtcStorage storage.Storer CurrentUsername string MacOsUserShellCmdGetter MacOsUserShellCmdGetter }
ShellGetter is a provider for getting a shell executable based on some environment
func NewShellGetter ¶
func NewShellGetter( os Os, macOsUserShellGetter MacOsUserShellCmdGetter, userHomeDir string, osEnvVars map[string]string, etcStorage storage.Storer, currentUsername string) *ShellGetter
NewShellGetter returns a new ShellGetter
func (*ShellGetter) Get ¶
func (g *ShellGetter) Get() (*Shell, error)
Get returns a new Shell
Source Files ¶
envshellcmdgetter.go linux_login_shell_cmd_getter.go macos_login_shell_cmd_getter.go os.go shellcmdgetter.go shellgetter.go
- Version
- v0.0.106 (latest)
- Published
- Oct 21, 2022
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 18 hours ago –
Tools for package owners.