main.lua 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. -- recovery mode has own environment, stop executing if activated
  2. if require('recovery') then return end
  3. -- on first time create project directory and copy seed files
  4. if not lovr.filesystem.isFile('init.lua') then
  5. print('seeding user project for first time')
  6. for _, item in ipairs(lovr.filesystem.getDirectoryItems('seed')) do
  7. if lovr.filesystem.isFile('/seed/' .. item) then
  8. print('copying', item)
  9. local content = lovr.filesystem.read('/seed/' .. item)
  10. local success = lovr.filesystem.write(item, content)
  11. elseif lovr.filesystem.isDirectory('/seed/' .. item) then
  12. lovr.filesystem.createDirectory(item)
  13. for _, subitem in ipairs(lovr.filesystem.getDirectoryItems('/seed/' .. item)) do
  14. if lovr.filesystem.isFile('/seed/' .. item .. '/' .. subitem) then
  15. print('copying', subitem)
  16. local content = lovr.filesystem.read('/seed/' .. item .. '/' .. subitem)
  17. local success = lovr.filesystem.write(item .. '/' .. subitem, content)
  18. end
  19. end
  20. end
  21. end
  22. end
  23. -- remove traces of loaded modules and jump into user code
  24. package.loaded['main'] = nil
  25. package.loaded['recovery'] = nil
  26. -- make user directory files overshadow app files
  27. lovr.filesystem.unmount(lovr.filesystem.getSaveDirectory())
  28. lovr.filesystem.mount(lovr.filesystem.getSaveDirectory(), "", false)
  29. require'init'