polyfill.lua 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. os.platform = nil
  2. if os.platform == nil then
  3. local libExt = package.cpath:match("%p[\\|/]?%p(%a+)")
  4. if libExt == 'dll' then
  5. os.platform = "windows"
  6. require"utf8_filenames"
  7. elseif libExt == 'so' then
  8. os.platform = "Linux"
  9. elseif libExt == 'dylib' then
  10. os.platform = "MacOS"
  11. end
  12. end
  13. os.copy = function(src, dest)
  14. if os.platform == "windows" then
  15. src = string.gsub(src, "/", "\\")
  16. os.execute('copy "' .. src .. '" "' .. dest .. '"')
  17. else
  18. os.execute('cp "' .. src .. '" "' .. dest .. '"')
  19. end
  20. end
  21. os.mkdir = function(dir)
  22. if os.exists(dir) then
  23. return
  24. end
  25. if os.platform == "windows" then
  26. os.execute('mkdir "' .. dir .. '"')
  27. else
  28. os.execute('mkdir -p "' .. dir .. '"')
  29. end
  30. end
  31. os.exists = function(path)
  32. if os.platform == "windows" then
  33. path = string.gsub(path, "/", "\\")
  34. local _, _, code = os.execute('if exist "' .. path .. '" (exit 0) else (exit 1)')
  35. return code == 0
  36. else
  37. local _, _, code = os.execute('test -e "' .. path .. '"')
  38. return code == 0
  39. end
  40. end