From 3234af9d0eb9a2b65b1f0c2393d1571007ad93bc Mon Sep 17 00:00:00 2001 From: cyberinferno Date: Sun, 21 Jun 2026 15:03:52 +0530 Subject: [PATCH] fix(file-editor): support ini files --- internal/services/file_editor_service.go | 3 +++ internal/services/file_editor_service_item_test.go | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/internal/services/file_editor_service.go b/internal/services/file_editor_service.go index a3b3dc0..ef4c713 100644 --- a/internal/services/file_editor_service.go +++ b/internal/services/file_editor_service.go @@ -49,6 +49,7 @@ const ( IT2ItemFileName = "2" IT3ItemFileName = "3" ItemCombinationDataFileName = "ItemCombinationData" + INIFileExtension = ".ini" MapFileExtension = ".map" SpawnFileExtension = ".n_ndt" QuestFileExtension = ".dat" @@ -166,6 +167,8 @@ func (fes *fileEditorService) GetFileType(path string, fileInfo fs.FileInfo) Fil return FileTypeSpawn case QuestFileExtension: return FileTypeQuest + case INIFileExtension: + return FileTypeText default: if fileInfo.Size() == NPCFileSize { return FileTypeNPC diff --git a/internal/services/file_editor_service_item_test.go b/internal/services/file_editor_service_item_test.go index 21a0784..ef239e4 100644 --- a/internal/services/file_editor_service_item_test.go +++ b/internal/services/file_editor_service_item_test.go @@ -167,6 +167,20 @@ func TestGetFileTypeItemFiles(t *testing.T) { }) } +func TestGetFileTypeINIFile(t *testing.T) { + log := logger.NewZerologLogger(zerolog.Nop(), "test", zerolog.Disabled) + service := NewFileEditorService(log) + path := filepath.Join(t.TempDir(), "SvrInfo.ini") + require.NoError(t, os.WriteFile(path, []byte("[server]\nname=A3\n"), 0644)) + + info, err := os.Stat(path) + require.NoError(t, err) + require.Equal(t, FileTypeText, service.GetFileType(path, info)) + require.True(t, service.IsFileViewable(path, info)) + require.True(t, service.IsFileEditable(path, info)) + require.Equal(t, "/file-tree/text-file", service.GetFileAPIEndpoint(path, info)) +} + func TestRawItemFileDataRoundTrip(t *testing.T) { log := logger.NewZerologLogger(zerolog.Nop(), "test", zerolog.Disabled) service := NewFileEditorService(log)