-- usage : update -- -- downloads local program = ... local function new_config(name) local path = "/etc/" .. name local function read_key_in_line(line, key) local prefix = key .. ":" local prefix_len = string.len(prefix) local actual = string.sub(line, 0, prefix_len) if not (prefix == actual) then return nil end local value = string.sub(line, prefix_len + 1) return value end local function get(key, default) local file = fs.open(path, "r") if file == nil then return default end while true do local line = file.readLine() if line == nil then return default end local value = read_key_in_line(line, key) if not (value == nil) then return value end end end return { get = get } end local function main() if program == nil then print("Usage: update ") return end local url = new_config("update").get("url", "http://cc.epitls.fr") local url_ = url .. "/" .. program local response = http.get(url_) if (response == nil) or (type(response) == "string") then print("HTTP Request to", url_, " failed :", response) return end local content = response.readAll() local path = "./" .. program if fs.exists(path) then fs.delete(path) end local file = fs.open(path, "w") file.write(content) print("Updated program", program) end main()