48 lines
827 B
Go
48 lines
827 B
Go
package mcclprofile
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path"
|
|
)
|
|
|
|
const ProfileFileName = "mccl_profile.json"
|
|
|
|
type Profile struct {
|
|
Username string `json:"username"`
|
|
Uuid string `json:"uuid"`
|
|
JavaXmx string `json:"java-Xmx"`
|
|
}
|
|
|
|
func (p *Profile) Store(rootDir string) error {
|
|
pf, err := os.OpenFile(path.Join(rootDir, ProfileFileName), os.O_CREATE|os.O_RDWR, 0666)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer pf.Close()
|
|
|
|
je := json.NewEncoder(pf)
|
|
je.SetIndent("", "\t")
|
|
if err := je.Encode(p); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func Load(rootDir string) (*Profile, error) {
|
|
p := &Profile{}
|
|
pf, err := os.Open(path.Join(rootDir, ProfileFileName))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer pf.Close()
|
|
|
|
jd := json.NewDecoder(pf)
|
|
if err := jd.Decode(p); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return p, nil
|
|
}
|