-
Notifications
You must be signed in to change notification settings - Fork 4
/
reveal.lua
50 lines (37 loc) · 1.24 KB
/
reveal.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
dt = require "darktable"
table = require "table"
local _debug = true
local function debug_print(message)
if _debug then
print(message)
end
end
function file_exists(path)
local testIsFileCommand = "test -s "..path
local testIsNotFileCommand = "test ! -s "..path
local positiveTest = os.execute(testIsFileCommand)
local negativeTest = os.execute(testIsNotFileCommand)
assert(positiveTest ~= negativeTest)
return (positiveTest ~= nil)
end
local function get_image_path(i) return "'"..i.path.."/"..i.filename.."'" end
local function reveal()
local image_table = dt.gui.selection()
local missing_image = nil
command_string = "open -R "
for _,image in pairs(image_table) do
local full_path = get_image_path(image)
if (file_exists(full_path)) then
command_string = command_string..full_path.." "
else
missing_image = image
end
end
if (missing_image ~= nil) then
--Show message and reveal parent folder (if available)
dt.print("Could not find "..get_image_path(missing_image)..", it might be offline or missing.")
command_string = "open '"..missing_image.path.."'"
end
os.execute(command_string)
end
dt.register_event("shortcut",reveal, "Reveal selected image(s) in Finder")