fix: guard against nil metadata values (#548)

This commit is contained in:
Steven Arcangeli 2025-01-04 12:52:26 -08:00
parent c6a39a69b2
commit 254bc6635c
4 changed files with 23 additions and 23 deletions

View file

@ -131,7 +131,7 @@ end
---@param cb fun(path: string)
M.get_entry_path = function(url, entry, cb)
local internal_entry = assert(cache.get_entry_by_id(entry.id))
local meta = internal_entry[FIELD_META]
local meta = assert(internal_entry[FIELD_META])
---@type oil.TrashInfo
local trash_info = meta.trash_info
if not trash_info then
@ -381,7 +381,7 @@ file_columns.mtime = {
get_sort_value = function(entry)
local meta = entry[FIELD_META]
---@type nil|oil.TrashInfo
local trash_info = meta.trash_info
local trash_info = meta and meta.trash_info
if trash_info then
return trash_info.deletion_date
else
@ -417,7 +417,7 @@ M.filter_action = function(action)
elseif action.type == "delete" then
local entry = assert(cache.get_entry_by_url(action.url))
local meta = entry[FIELD_META]
return meta.trash_info ~= nil
return meta ~= nil and meta.trash_info ~= nil
elseif action.type == "move" then
local src_adapter = assert(config.get_adapter_by_scheme(action.src_url))
local dest_adapter = assert(config.get_adapter_by_scheme(action.dest_url))
@ -447,7 +447,7 @@ M.render_action = function(action)
local entry = assert(cache.get_entry_by_url(action.url))
local meta = entry[FIELD_META]
---@type oil.TrashInfo
local trash_info = meta.trash_info
local trash_info = meta and meta.trash_info
local short_path = fs.shorten_path(trash_info.original_path)
return string.format(" PURGE %s", short_path)
elseif action.type == "move" then
@ -561,7 +561,7 @@ M.perform_action = function(action, cb)
local entry = assert(cache.get_entry_by_url(action.url))
local meta = entry[FIELD_META]
---@type oil.TrashInfo
local trash_info = meta.trash_info
local trash_info = meta and meta.trash_info
purge(trash_info, cb)
elseif action.type == "move" then
local src_adapter = assert(config.get_adapter_by_scheme(action.src_url))
@ -576,7 +576,7 @@ M.perform_action = function(action, cb)
local entry = assert(cache.get_entry_by_url(action.src_url))
local meta = entry[FIELD_META]
---@type oil.TrashInfo
local trash_info = meta.trash_info
local trash_info = meta and meta.trash_info
fs.recursive_move(action.entry_type, trash_info.trash_file, dest_path, function(err)
if err then
return cb(err)
@ -608,7 +608,7 @@ M.perform_action = function(action, cb)
local entry = assert(cache.get_entry_by_url(action.src_url))
local meta = entry[FIELD_META]
---@type oil.TrashInfo
local trash_info = meta.trash_info
local trash_info = meta and meta.trash_info
fs.recursive_copy(action.entry_type, trash_info.trash_file, dest_path, cb)
else
error("Must be moving files into or out of trash")