Created
August 21, 2015 20:25
-
-
Save a327ex/4d5043c0bfd90b6b558b to your computer and use it in GitHub Desktop.
Auto-updater
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
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
@adonaac: Thank you for putting this together! I used it on a project I'm working on & it failed because
version
wasn't supplied togame_request()
like it is on the blog post, so I forked & added it here.