Move internal/core => internal/cli
This commit is contained in:
parent
8d2855fdcb
commit
10df1c3243
45 changed files with 113 additions and 143 deletions
71
internal/cli/meta.go
Normal file
71
internal/cli/meta.go
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io/fs"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/FAU-CDI/wisski-distillery/internal/bootstrap"
|
||||
"github.com/FAU-CDI/wisski-distillery/pkg/environment"
|
||||
)
|
||||
|
||||
// metaConfigFile is the path to a configuration file that contains the path to the last used wdcli executable.
|
||||
// It is expected to be in the current user's home directory.
|
||||
//
|
||||
// It should contain the path to a deployment directory.
|
||||
const metaConfigFile = "." + bootstrap.Executable
|
||||
|
||||
// MetaConfigPath returns the full path to the MetaConfigPath()
|
||||
func MetaConfigPath() (string, error) {
|
||||
// find the current user
|
||||
usr, err := user.Current()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return filepath.Join(usr.HomeDir, metaConfigFile), nil
|
||||
}
|
||||
|
||||
var errReadBaseDirectoryEmpty = errors.New("ReadBaseDirectory: Directory is empty")
|
||||
|
||||
// ReadBaseDirectory reads the base deployment directory from the environment.
|
||||
// Use [ParamsFromEnv] to initialize parameters completely.
|
||||
//
|
||||
// It does not perform any reading of files.
|
||||
func ReadBaseDirectory(env environment.Environment) (value string, err error) {
|
||||
// get the path!
|
||||
path, err := MetaConfigPath()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
// read the meta config file!
|
||||
contents, err := environment.ReadFile(env, path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
// and trim the spaces!
|
||||
value = strings.TrimSpace(string(contents))
|
||||
|
||||
// check that it is actually set!
|
||||
if len(value) == 0 {
|
||||
return "", errReadBaseDirectoryEmpty
|
||||
}
|
||||
|
||||
// and return it!
|
||||
return value, nil
|
||||
}
|
||||
|
||||
// WriteBaseDirectory writes the base directory to the environment, or returns an error
|
||||
func WriteBaseDirectory(env environment.Environment, dir string) error {
|
||||
// get the path!
|
||||
path, err := MetaConfigPath()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// just put the directory inside it!
|
||||
return environment.WriteFile(env, path, []byte(dir), fs.ModePerm)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue