mirror of
https://git.numenor-labs.us/dsfx.git
synced 2025-04-29 08:10:34 +00:00
86 lines
2.2 KiB
Go
86 lines
2.2 KiB
Go
package system
|
|
|
|
import (
|
|
"os"
|
|
|
|
"koti.casa/numenor-labs/dsfx/internal/lib/disk"
|
|
)
|
|
|
|
// Default returns a default implementation of the System interface.
|
|
func Default() System {
|
|
return &osSystem{}
|
|
}
|
|
|
|
type osSystem struct{}
|
|
|
|
// Args returns the command-line arguments passed to the program. The name of the
|
|
// program is filtered out, so it only returns the arguments provided by the user.
|
|
// It implements the System interface.
|
|
func (s *osSystem) Args() []string {
|
|
return os.Args[1:]
|
|
}
|
|
|
|
// Arg returns the command-line argument at the specified index. If the index is
|
|
// out of range, it returns an empty string.
|
|
// // It implements the System interface.
|
|
func (s *osSystem) Arg(i int) string {
|
|
if i < 0 || i >= len(os.Args) {
|
|
return ""
|
|
}
|
|
return os.Args[i+1] // +1 to skip the program name
|
|
}
|
|
|
|
// UserHomeDir returns the user's home directory.
|
|
// It implements the System interface.
|
|
func (s *osSystem) UserHomeDir() (string, error) {
|
|
return os.UserHomeDir()
|
|
}
|
|
|
|
// UserConfigDir returns the user's configuration directory.
|
|
// It implements the System interface.
|
|
func (s *osSystem) UserConfigDir() (string, error) {
|
|
return os.UserConfigDir()
|
|
}
|
|
|
|
// UserCacheDir returns the user's cache directory.
|
|
// It implements the System interface.
|
|
func (s *osSystem) UserCacheDir() (string, error) {
|
|
return os.UserCacheDir()
|
|
}
|
|
|
|
// TempDir returns the directory used for temporary files.
|
|
// It implements the System interface.
|
|
func (s *osSystem) TempDir() string {
|
|
return os.TempDir()
|
|
}
|
|
|
|
// Stdout returns the standard output file.
|
|
// It implements the System interface.
|
|
func (s *osSystem) Stdout() disk.File {
|
|
return os.Stdout
|
|
}
|
|
|
|
// Stderr returns the standard error file.
|
|
// It implements the System interface.
|
|
func (s *osSystem) Stderr() disk.File {
|
|
return os.Stderr
|
|
}
|
|
|
|
// Exit terminates the program with the given exit code.
|
|
// It implements the System interface.
|
|
func (s *osSystem) Exit(code int) {
|
|
os.Exit(code)
|
|
}
|
|
|
|
// GetEnv retrieves the value of the environment variable named by key.
|
|
// It implements the System interface.
|
|
func (s *osSystem) GetEnv(key string) string {
|
|
return os.Getenv(key)
|
|
}
|
|
|
|
// SetEnv sets the value of the environment variable named by key to value.
|
|
// It implements the System interface.
|
|
func (s *osSystem) SetEnv(key, value string) error {
|
|
return os.Setenv(key, value)
|
|
}
|