Files
zrok/agent/enrollment.go

43 lines
810 B
Go

package agent
import (
"encoding/json"
"github.com/pkg/errors"
"os"
)
const EnrollmentV = "1"
type Enrollment struct {
V string `json:"v"`
Token string `json:"token"`
}
func NewEnrollment(token string) *Enrollment {
return &Enrollment{Token: token}
}
func LoadEnrollment(path string) (*Enrollment, error) {
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
e := &Enrollment{}
if err := json.Unmarshal(data, e); err != nil {
return nil, err
}
if e.V != EnrollmentV {
return nil, errors.Errorf("invalid enrollment version '%v'; expected '%v'", e.V, EnrollmentV)
}
return e, nil
}
func (e *Enrollment) Save(path string) error {
e.V = EnrollmentV
data, err := json.MarshalIndent(e, "", " ")
if err != nil {
return err
}
return os.WriteFile(path, data, 0600)
}