mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
init machined cli
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package daemon
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultDataDir = "/var/lib/uncloud"
|
||||
MachineConfigPath = "machine.json"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
UncloudID string
|
||||
UncloudSecret string
|
||||
// IPv4 network in CIDR format to use for the machine network.
|
||||
Network string
|
||||
}
|
||||
|
||||
func ReadConfig(path string) (Config, error) {
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return Config{}, fmt.Errorf("read config file %q: %w", path, err)
|
||||
}
|
||||
var config Config
|
||||
if err = json.Unmarshal(data, &config); err != nil {
|
||||
return Config{}, fmt.Errorf("parse config file %q: %w", path, err)
|
||||
}
|
||||
return config, nil
|
||||
}
|
||||
|
||||
func (c *Config) Write(path string) error {
|
||||
dir, _ := filepath.Split(path)
|
||||
if err := os.MkdirAll(dir, 0700); err != nil {
|
||||
return fmt.Errorf("create config directory %q: %w", dir, err)
|
||||
}
|
||||
|
||||
data, err := json.Marshal(c)
|
||||
if err != nil {
|
||||
return fmt.Errorf("marshal config: %w", err)
|
||||
}
|
||||
return os.WriteFile(path, data, 0600)
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package daemon
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func Run(dataDir string) error {
|
||||
cfg, err := ReadConfig(filepath.Join(dataDir, MachineConfigPath))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println("Config", cfg)
|
||||
|
||||
return errors.New("Running daemon...")
|
||||
}
|
||||
Reference in New Issue
Block a user