mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-07 12:50:21 -06:00
66 lines
2.5 KiB
Go
66 lines
2.5 KiB
Go
package store
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const folderNameBundles = "bundles"
|
|
const folderNameValues = "values"
|
|
const folderNameAssignments = "assignments"
|
|
|
|
// buildFolderPathForBundles builds the folder path for storing settings bundles. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFolderPathForBundles(mkdir bool) string {
|
|
folderPath := filepath.Join(s.dataPath, folderNameBundles)
|
|
if mkdir {
|
|
s.ensureFolderExists(folderPath)
|
|
}
|
|
return folderPath
|
|
}
|
|
|
|
// buildFilePathForBundle builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFilePathForBundle(bundleID string, mkdir bool) string {
|
|
extensionFolder := s.buildFolderPathForBundles(mkdir)
|
|
return filepath.Join(extensionFolder, bundleID+".json")
|
|
}
|
|
|
|
// buildFolderPathForValues builds the folder path for storing settings values. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFolderPathForValues(mkdir bool) string {
|
|
folderPath := filepath.Join(s.dataPath, folderNameValues)
|
|
if mkdir {
|
|
s.ensureFolderExists(folderPath)
|
|
}
|
|
return folderPath
|
|
}
|
|
|
|
// buildFilePathForValue builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFilePathForValue(valueID string, mkdir bool) string {
|
|
extensionFolder := s.buildFolderPathForValues(mkdir)
|
|
return filepath.Join(extensionFolder, valueID+".json")
|
|
}
|
|
|
|
// buildFolderPathForRoleAssignments builds the folder path for storing role assignments. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFolderPathForRoleAssignments(mkdir bool) string {
|
|
roleAssignmentsFolder := filepath.Join(s.dataPath, folderNameAssignments)
|
|
if mkdir {
|
|
s.ensureFolderExists(roleAssignmentsFolder)
|
|
}
|
|
return roleAssignmentsFolder
|
|
}
|
|
|
|
// buildFilePathForRoleAssignment builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary.
|
|
func (s Store) buildFilePathForRoleAssignment(assignmentID string, mkdir bool) string {
|
|
roleAssignmentsFolder := s.buildFolderPathForRoleAssignments(mkdir)
|
|
return filepath.Join(roleAssignmentsFolder, assignmentID+".json")
|
|
}
|
|
|
|
// ensureFolderExists checks if the given path is an existing folder and creates one if not existing
|
|
func (s Store) ensureFolderExists(path string) {
|
|
if _, err := os.Stat(path); os.IsNotExist(err) {
|
|
err = os.MkdirAll(path, 0700)
|
|
if err != nil {
|
|
s.Logger.Err(err).Msgf("Error creating folder %v", path)
|
|
}
|
|
}
|
|
}
|