@@ -81,28 +81,9 @@ if not dfhack.world.isFortressMode() then
8181 qerror (' This script can only be used in fortress mode' )
8282end
8383
84- -- ---------------------------------------------------------------------------
85- -- File helpers
86- -- ---------------------------------------------------------------------------
8784
88- -- Recursively delete a directory tree. Returns true on success.
89- local function deleteDir (path )
90- if dfhack .filesystem .rmdir_recursive then
91- return dfhack .filesystem .rmdir_recursive (path )
92- else
93- qerror (" The --cleanup feature requires a newer version of DFHack. Please update." )
94- end
95- end
9685
97- -- ---------------------------------------------------------------------------
98- -- Save-directory resolution
99- -- ---------------------------------------------------------------------------
10086
101- -- DF Premium stores saves under %APPDATA%/Bay 12 Games/Dwarf Fortress/save.
102- -- Classic/portable installs keep them next to the executable.
103- local function getTrueSaveDir ()
104- return dfhack .filesystem .getBaseDir () .. " /save"
105- end
10687
10788-- ---------------------------------------------------------------------------
10889-- Cleanup logic
@@ -113,10 +94,8 @@ local function pruneManualSaves(save_dir, keep)
11394 local items = dfhack .filesystem .listdir (save_dir )
11495 local manual_saves = {}
11596
116- for _ , item in ipairs (items or {}) do
117- local name = type (item ) == " table" and item .name or item
118- local isdir = type (item ) == " table" and item .isdir
119- or dfhack .filesystem .isdir (save_dir .. " /" .. name )
97+ for _ , name in ipairs (items or {}) do
98+ local isdir = dfhack .filesystem .isdir (save_dir .. " /" .. name )
12099
121100 -- Only touch directories whose name contains "-Manual-"
122101 if isdir and name :find (" -Manual-" ) then
@@ -136,7 +115,7 @@ local function pruneManualSaves(save_dir, keep)
136115 for idx = keep + 1 , # manual_saves do
137116 local target = save_dir .. " /" .. manual_saves [idx ].name
138117 print (" Pruning old snapshot: " .. manual_saves [idx ].name )
139- deleteDir (target )
118+ dfhack . filesystem . rmdir_recursive (target )
140119 end
141120
142121 if # manual_saves > keep then
@@ -180,7 +159,7 @@ local function triggerManualSave()
180159 print (" Manual save completed successfully: " .. final_folder_name )
181160
182161 if cleanup_count then
183- pruneManualSaves (getTrueSaveDir () , cleanup_count )
162+ pruneManualSaves (dfhack . filesystem . getBaseDir () .. " /save " , cleanup_count )
184163 end
185164 end )
186165end
0 commit comments