From abb201ab57ee0938f92685b6466da3b548529de6 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 20 Dec 2011 17:35:50 +0000 Subject: [PATCH] modules/admin-full: reuse sysupgrade facilities to create backup archive --- .../admin-full/luasrc/controller/admin/system.lua | 23 +++++++--------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua index 68f3d258d..a5666ccbb 100644 --- a/modules/admin-full/luasrc/controller/admin/system.lua +++ b/modules/admin-full/luasrc/controller/admin/system.lua @@ -2,7 +2,7 @@ LuCI - Lua Configuration Interface Copyright 2008 Steven Barth -Copyright 2008-2009 Jo-Philipp Wich +Copyright 2008-2011 Jo-Philipp Wich Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -186,7 +186,7 @@ function action_flashops() local reset_avail = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0 local restore_cmd = "tar -xzC/ >/dev/null 2>&1" - local backup_cmd = "tar -czT %s 2>/dev/null" + local backup_cmd = "sysupgrade --create-backup - 2>/dev/null" local image_tmp = "/tmp/firmware.img" local function image_supported() @@ -249,20 +249,11 @@ function action_flashops() -- -- Assemble file list, generate backup -- - local filelist = "/tmp/luci-backup-list.%d" % os.time() - sys.call( - "( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' /etc/sysupgrade.conf " .. - "/lib/upgrade/keep.d/* 2>/dev/null) -type f 2>/dev/null; " .. - "opkg list-changed-conffiles ) | sort -u > %s" % filelist - ) - if fs.access(filelist) then - local reader = ltn12_popen(backup_cmd:format(filelist)) - luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s.tar.gz"' % { - luci.sys.hostname(), os.date("%Y-%m-%d")}) - luci.http.prepare_content("application/x-targz") - luci.ltn12.pump.all(reader, luci.http.write) - fs.unlink(filelist) - end + local reader = ltn12_popen(backup_cmd) + luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s.tar.gz"' % { + luci.sys.hostname(), os.date("%Y-%m-%d")}) + luci.http.prepare_content("application/x-targz") + luci.ltn12.pump.all(reader, luci.http.write) elseif luci.http.formvalue("restore") then -- -- Unpack received .tar.gz -- 2.11.0