-n, --dry-run option
[mob/metatag] / metatag_exporters.lua
1 -- metatag     Metadata extraction utility
2 -- Copyright (C) 2014  Christian Th├Ąter <ct@pipapo.org>
3 --
4 -- This program is free software: you can redistribute it and/or modify
5 -- it under the terms of the GNU General Public License as published by
6 -- the Free Software Foundation, either version 3 of the License, or
7 -- (at your option) any later version.
8 --
9 -- This program is distributed in the hope that it will be useful,
10 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 -- GNU General Public License for more details.
13 --
14 -- You should have received a copy of the GNU General Public License
15 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 DOC.exporters = DOC.exporters.."\n"..[[
18  print
19   prints the found metadata to stdout. First the singlequoted filename and then one metadata
20   entry per line preceeded by a tab character.
21 ]]
22 Meta:Export (
23    "print",
24    function (file, meta)
25       io.write(shquote(file).."\n")
26       for k,vs in pairs(meta) do
27          for i=1,#vs do
28             io.write("\t"..k.." = "..vs[i].."\n")
29          end
30       end
31    end
32 )
33
34
35 DOC.exporters = DOC.exporters.."\n"..[[
36  gitannex
37   uses the 'git-annex' metadata facilities to attach metadata to stored files.
38   Only available when '-O gitannex' is set, '-O gitannex=overwrite' will clear
39   existing metadata under any found fields.
40 ]]
41 if options.gitannex then
42    if shexists("git-annex") then
43       Meta:Export (
44          "gitannex:-stat:-^/=",
45          function (file, meta)
46             local cmd="git -c annex.alwayscommit=false annex metadata "..shquote(file)
47             for k,vs in pairs(meta) do
48                local start = 1
49                if options.gitannex == 'overwrite' then
50                   start = 2
51                   cmd = cmd.." -s "..shquote(k.."="..vs[1])
52                end
53                for i=start,#vs do
54                   cmd = cmd.." -s "..shquote(k.."+="..vs[1])
55                end
56             end
57             sh(cmd)
58          end
59       )
60    else
61       msg("git-annex not found")
62    end
63 end
64 --DOC.exporters = DOC.exporters.."\n"..[[
65 --]]
66 --Meta:Export (
67 --   "xattr"
68 --)
69
70 --DOC.exporters = DOC.exporters.."\n"..[[
71 --]]
72 --Meta:Export (
73 --   "shadowtree"
74 --)
75
76