From 3451d56ead6e57f503962b876c89284f1fb73a90 Mon Sep 17 00:00:00 2001 From: Gabriel Arakaki Giovanini Date: Sat, 10 Sep 2022 17:33:30 +0200 Subject: ref: Create a storage interface This `Storage` interface will define all the interactions with the storage system. For now I plan to support native file system through go's standard library and Nextcloud through *webdav*. So this is the first step in that direction. --- testutil/testutil.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 testutil/testutil.go (limited to 'testutil') diff --git a/testutil/testutil.go b/testutil/testutil.go new file mode 100644 index 0000000..3b5f7b5 --- /dev/null +++ b/testutil/testutil.go @@ -0,0 +1,50 @@ +package testutil + +import ( + "fmt" + "math/rand" + "os" + "time" +) + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func RandomString(n int) string { + var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") + s := make([]rune, n) + for i := range s { + s[i] = letters[rand.Intn(len(letters))] + } + return string(s) +} + +func CreateFolder() (tmp string) { + tmp = fmt.Sprintf("/tmp/%s", RandomString(10)) + + err := os.Mkdir(tmp, 0755) + + if err != nil { + fmt.Println(err.Error()) + } + + return +} + +func AppendEmptyFile(path string) (fullPath string) { + fullPath = fmt.Sprintf("%s/%s", path, RandomString(10)) + os.OpenFile(fullPath, os.O_RDONLY|os.O_CREATE, 0666) + + return +} + +func CreateEmptyFile(path string) { + os.OpenFile(path, os.O_RDONLY|os.O_CREATE, 0666) +} + +func CreateTmpFile() (fullPath string) { + path := CreateFolder() + fullPath = AppendEmptyFile(path) + return +} -- cgit v1.2.3