assets.lua (1058B)
1 -- @module assets 2 local assets = {} 3 -- 4 local file = require 'satelito.file' 5 local lfs = require 'lfs' -- luafilesystem 6 local lume = require 'satelito.lib.lume.lume' 7 local mimetypes = require 'mimetypes' 8 9 function assets.export(filemeta) 10 local mtypes = filemeta.mimetypes 11 local siblings = lume.array(lfs.dir(file.get_dirname(filemeta.paths.content..filemeta.relpath))) 12 local function is_in_mimetypes(f) 13 return lume.any(mtypes, function(mtype) return mtype == mimetypes.guess(f) end) 14 end 15 16 for i = 1, #siblings do 17 if is_in_mimetypes(siblings[i]) then 18 local source = file.get_dirname(filemeta.paths.content..filemeta.relpath)..siblings[i] 19 local target = file.get_dirname(filemeta.exportlink)..siblings[i] 20 21 if not lfs.attributes(target) 22 or lfs.attributes(source).modification > lfs.attributes(target).modification 23 then 24 print('=> Moving assets ...') 25 print('====> '..source..' => '..target) 26 27 os.execute('cp ' .. source .. ' ' .. target) 28 end 29 end 30 end 31 32 return 33 end 34 35 return assets