package service import ( "os" "next-terminal/pkg/guacd" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/utils" ) type PropertyService struct { propertyRepository *repository.PropertyRepository } func NewPropertyService(propertyRepository *repository.PropertyRepository) *PropertyService { return &PropertyService{propertyRepository: propertyRepository} } func (r PropertyService) InitProperties() error { propertyMap := r.propertyRepository.FindAllMap() if len(propertyMap[guacd.Host]) == 0 { property := model.Property{ Name: guacd.Host, Value: "127.0.0.1", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.Port]) == 0 { property := model.Property{ Name: guacd.Port, Value: "4822", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableRecording]) == 0 { property := model.Property{ Name: guacd.EnableRecording, Value: "true", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.RecordingPath]) == 0 { path, _ := os.Getwd() property := model.Property{ Name: guacd.RecordingPath, Value: path + "/recording/", } if !utils.FileExists(property.Value) { if err := os.Mkdir(property.Value, os.ModePerm); err != nil { return err } } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.CreateRecordingPath]) == 0 { property := model.Property{ Name: guacd.CreateRecordingPath, Value: "true", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.DriveName]) == 0 { property := model.Property{ Name: guacd.DriveName, Value: "File-System", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.DrivePath]) == 0 { path, _ := os.Getwd() property := model.Property{ Name: guacd.DrivePath, Value: path + "/drive/", } if !utils.FileExists(property.Value) { if err := os.Mkdir(property.Value, os.ModePerm); err != nil { return err } } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.FontName]) == 0 { property := model.Property{ Name: guacd.FontName, Value: "menlo", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.FontSize]) == 0 { property := model.Property{ Name: guacd.FontSize, Value: "12", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.ColorScheme]) == 0 { property := model.Property{ Name: guacd.ColorScheme, Value: "gray-black", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableDrive]) == 0 { property := model.Property{ Name: guacd.EnableDrive, Value: "true", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableWallpaper]) == 0 { property := model.Property{ Name: guacd.EnableWallpaper, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableTheming]) == 0 { property := model.Property{ Name: guacd.EnableTheming, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableFontSmoothing]) == 0 { property := model.Property{ Name: guacd.EnableFontSmoothing, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableFullWindowDrag]) == 0 { property := model.Property{ Name: guacd.EnableFullWindowDrag, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableDesktopComposition]) == 0 { property := model.Property{ Name: guacd.EnableDesktopComposition, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.EnableMenuAnimations]) == 0 { property := model.Property{ Name: guacd.EnableMenuAnimations, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.DisableBitmapCaching]) == 0 { property := model.Property{ Name: guacd.DisableBitmapCaching, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.DisableOffscreenCaching]) == 0 { property := model.Property{ Name: guacd.DisableOffscreenCaching, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } if len(propertyMap[guacd.DisableGlyphCaching]) == 0 { property := model.Property{ Name: guacd.DisableGlyphCaching, Value: "false", } if err := r.propertyRepository.Create(&property); err != nil { return err } } return nil }