Skip to content

Instantly share code, notes, and snippets.

@prust
Forked from a327ex/main.lua
Created April 15, 2017 05:24
Show Gist options
  • Save prust/8c76c1c9f96aa3caca40d3d998a0c3f2 to your computer and use it in GitHub Desktop.
Save prust/8c76c1c9f96aa3caca40d3d998a0c3f2 to your computer and use it in GitHub Desktop.
Auto-updater
local async = require('async')
function love.load(args)
async.load()
async.ensure.atLeast(2)
local version = nil
local version_request = async.define("version_request", function()
local request = require('luajit-request')
local response = request.send(link to the version file)
return response.body, response.code
end)
local game_request = async.define("game_request", function(version)
local request = require('luajit-request')
local response = request.send(link to the game using the version variable)
return response.body, response.code
end)
version_request(function(result, status)
if status == 200 then
version = getVersion(result) -- TODO: define getVersion
if not love.filesystem.isFile('game_' .. version .. '.love') then
game_request(function(result, status)
if status == 200 then
love.filesystem.write('game_' .. version .. '.love', result)
love.filesystem.mount('game_' .. version .. '.love', '')
package.loaded.main = nil
package.loaded.conf = nil
love.conf = nil
love.init()
love.load(args)
end
end, version)
else
love.filesystem.mount('game_' .. version .. '.love')
package.loaded.main = nil
package.loaded.conf = nil
love.conf = nil
love.init()
love.load(args)
end
end
end)
end
function love.update(dt)
async.update()
end
function love.draw()
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment