mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-06 13:22:57 +03:00
58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package bootstrap
|
|
|
|
import (
|
|
"github.com/stonith404/pocket-id/backend/internal/common"
|
|
"github.com/stonith404/pocket-id/backend/internal/utils"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// initApplicationImages copies the images from the images directory to the application-images directory
|
|
func initApplicationImages() {
|
|
dirPath := common.EnvConfig.UploadPath + "/application-images"
|
|
|
|
sourceFiles, err := os.ReadDir("./images")
|
|
if err != nil && !os.IsNotExist(err) {
|
|
log.Fatalf("Error reading directory: %v", err)
|
|
}
|
|
|
|
destinationFiles, err := os.ReadDir(dirPath)
|
|
if err != nil && !os.IsNotExist(err) {
|
|
log.Fatalf("Error reading directory: %v", err)
|
|
}
|
|
|
|
// Copy images from the images directory to the application-images directory if they don't already exist
|
|
for _, sourceFile := range sourceFiles {
|
|
if sourceFile.IsDir() || imageAlreadyExists(sourceFile.Name(), destinationFiles) {
|
|
continue
|
|
}
|
|
srcFilePath := "./images/" + sourceFile.Name()
|
|
destFilePath := dirPath + "/" + sourceFile.Name()
|
|
|
|
err := utils.CopyFile(srcFilePath, destFilePath)
|
|
if err != nil {
|
|
log.Fatalf("Error copying file: %v", err)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
func imageAlreadyExists(fileName string, destinationFiles []os.DirEntry) bool {
|
|
for _, destinationFile := range destinationFiles {
|
|
sourceFileWithoutExtension := getImageNameWithoutExtension(fileName)
|
|
destinationFileWithoutExtension := getImageNameWithoutExtension(destinationFile.Name())
|
|
|
|
if sourceFileWithoutExtension == destinationFileWithoutExtension {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func getImageNameWithoutExtension(fileName string) string {
|
|
splitted := strings.Split(fileName, ".")
|
|
return strings.Join(splitted[:len(splitted)-1], ".")
|
|
}
|