mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-17 20:52:14 +01:00
fix: LibreOffice newer versions stability (#697)
This commit is contained in:
@@ -7,24 +7,44 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// TmpPath returns the default directory to use for temporary files and
|
||||
// directories. Most if not all files and directories created by the
|
||||
// application and its dependencies must be based on this default directory.
|
||||
func TmpPath() string {
|
||||
return os.TempDir()
|
||||
// FileSystem provides utilities for managing temporary directories. It creates
|
||||
// unique directory names based on UUIDs to ensure isolation of temporary files
|
||||
// for different modules.
|
||||
type FileSystem struct {
|
||||
workingDir string
|
||||
}
|
||||
|
||||
// NewDirPath returns a random absolute path based on the temporary path.
|
||||
func NewDirPath() string {
|
||||
return fmt.Sprintf("%s/%s", TmpPath(), uuid.New())
|
||||
// NewFileSystem initializes a new FileSystem instance with a unique working
|
||||
// directory.
|
||||
func NewFileSystem() *FileSystem {
|
||||
return &FileSystem{
|
||||
workingDir: uuid.NewString(),
|
||||
}
|
||||
}
|
||||
|
||||
// MkdirAll creates a random directory based on the temporary path and
|
||||
// returns its absolute path.
|
||||
func MkdirAll() (string, error) {
|
||||
path := NewDirPath()
|
||||
// WorkingDir returns the unique name of the working directory.
|
||||
func (fs *FileSystem) WorkingDir() string {
|
||||
return fs.workingDir
|
||||
}
|
||||
|
||||
err := os.MkdirAll(path, 0755)
|
||||
// WorkingDirPath constructs and returns the full path to the working directory
|
||||
// inside the system's temporary directory.
|
||||
func (fs *FileSystem) WorkingDirPath() string {
|
||||
return fmt.Sprintf("%s/%s", os.TempDir(), fs.workingDir)
|
||||
}
|
||||
|
||||
// NewDirPath generates a new unique path for a directory inside the working
|
||||
// directory.
|
||||
func (fs *FileSystem) NewDirPath() string {
|
||||
return fmt.Sprintf("%s/%s", fs.WorkingDirPath(), uuid.NewString())
|
||||
}
|
||||
|
||||
// MkdirAll creates a new unique directory inside the working directory and
|
||||
// returns its path. If the directory creation fails, an error is returned.
|
||||
func (fs *FileSystem) MkdirAll() (string, error) {
|
||||
path := fs.NewDirPath()
|
||||
|
||||
err := os.MkdirAll(path, 0o755)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("create directory %s: %w", path, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user