Skip to content

Commit 46c88bd

Browse files
committed
FileOps.mkdir(): make return values indicate when a directory already exists
true: created, false: already exists, nil: failure
1 parent ff3c91f commit 46c88bd

3 files changed

Lines changed: 14 additions & 12 deletions

File tree

modules/DependencyControl.moon

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class DependencyControl
6767
}
6868

6969
dlm = DownloadManager!
70-
platform, configDirExists, logsHaveBeenTrimmed, scheduledRemovalHasRun = "#{ffi.os}-#{ffi.arch}"
70+
platform, logsHaveBeenTrimmed, scheduledRemovalHasRun = "#{ffi.os}-#{ffi.arch}"
7171
cumInitTime = 0
7272
fileOps.mkdir depConf.file, true
7373

@@ -168,7 +168,7 @@ class DependencyControl
168168
@configDir = @@config.c.configDir
169169
@writeConfig shouldWriteConfig and saveRecordToConfig, false, false
170170

171-
configDirExists or= fileOps.mkdir aegisub.decode_path @configDir
171+
fileOps.mkdir aegisub.decode_path @configDir
172172
logsHaveBeenTrimmed or= @@logger\trimFiles!
173173
scheduledRemovalHasRun or= fileOps.runScheduledRemoval @configDir
174174

modules/DependencyControl/FileOps.moon

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,11 @@ class FileOps
165165
return false, msgs.move.genericError\format source, target, err
166166

167167
else -- target file not found, check directory
168-
dir, err = FileOps.mkdir target, true
169-
unless dir
168+
res, dir = FileOps.mkdir target, true
169+
if res == nil
170170
return false, msgs.move.createDirError\format source, target, err
171-
FileOps.logger\trace msgs.move.createdDir, dir
171+
elseif res
172+
FileOps.logger\trace msgs.move.createdDir, dir
172173

173174
-- at this point the target directory exists and the target file doesn't, move the file
174175
res, err = os.rename source, target
@@ -199,19 +200,20 @@ class FileOps
199200
mkdir: (path, isFile) ->
200201
path, dev, dir, file = FileOps.validateFullPath path
201202
unless path
202-
return false, msgs.attributes.badPath\format dev
203+
return nil, msgs.attributes.badPath\format dev
203204
dir = isFile and table.concat({dev,dir or file}) or path
204205

205206
mode, err = lfs.attributes dir, "mode"
206207
if err
207-
return false, msgs.attributes.genericError\format err
208+
return nil, msgs.attributes.genericError\format err
208209
elseif not mode
209210
res, err = lfs.mkdir dir
210211
if err -- can't create directory (possibly a permission error)
211-
return false, msgs.mkdir.createError\format err
212+
return nil, msgs.mkdir.createError\format err
213+
return true, dir
212214
elseif mode != "directory" -- a file of the same name as the target directory is already present
213-
return false, msgs.mkdir.otherExists\format mode
214-
return dir
215+
return nil, msgs.mkdir.otherExists\format mode
216+
return false, dir
215217

216218
attributes: (path, key) ->
217219
fullPath, dev, dir, file = FileOps.validateFullPath path

modules/DependencyControl/Updater.moon

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ class UpdateTask extends UpdaterBase
276276
-- check hashes before download, only update changed files
277277

278278
tmpDir = aegisub.decode_path "?temp/l0.#{DependencyControl.__name}_#{'%04X'\format math.random 0, 16^4-1}"
279-
res, err = fileOps.mkdir tmpDir
280-
return finish -30, "#{tmpDir} (#{err})" unless res
279+
res, dir = fileOps.mkdir tmpDir
280+
return finish -30, "#{tmpDir} (#{err})" if res == nil
281281

282282
@@logger\log msgs.performUpdate.updateReady, tmpDir
283283

0 commit comments

Comments
 (0)