satelito

Static site generator made with Lua script.
git clone git://soucy.cc/satelito.git
Log | Files | Refs | README

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