Files
sbctl/guid.go
Morten Linderud 71024417a3 Rework sbctl backend
Signed-off-by: Morten Linderud <morten@linderud.pw>
2024-07-24 21:15:29 +02:00

32 lines
567 B
Go

package sbctl
import (
"os"
"github.com/foxboron/sbctl/fs"
"github.com/google/uuid"
"github.com/spf13/afero"
)
func CreateUUID() []byte {
id, _ := uuid.NewRandom()
return []byte(id.String())
}
func CreateGUID(vfs afero.Fs, guidPath string) ([]byte, error) {
var uuid []byte
if _, err := vfs.Stat(guidPath); os.IsNotExist(err) {
uuid = CreateUUID()
err := fs.WriteFile(vfs, guidPath, uuid, 0644)
if err != nil {
return nil, err
}
} else {
uuid, err = fs.ReadFile(vfs, guidPath)
if err != nil {
return nil, err
}
}
return uuid, nil
}