luci-app-attendedsysupgrade: fix branch detection
The running branch determines which upgrades are suggested. A jump to a newer branch (e.g. 19.07.8 to 21.02.1) is only suggested if the advanced mode is enable, since it may break the router. OpenWrt versions end in either `-SNAPSHOT`, `.X-rcY` or `.x`. All these suffixes are removed, resulting in the branch name. Previously the `-SNAPSHOT` suffix wasn't removed resulting in wrong branch names. Also clean up some log spam. Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit is contained in:
parent
c1c92b5506
commit
85e9ee3123
1 changed files with 12 additions and 5 deletions
|
@ -24,6 +24,15 @@ var callUpgradeStart = rpc.declare({
|
||||||
params: ["keep"]
|
params: ["keep"]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function get_branch(version) {
|
||||||
|
// determine branch of a version
|
||||||
|
// SNAPSHOT -> SNAPSHOT
|
||||||
|
// 21.02-SNAPSHOT -> 21.02
|
||||||
|
// 21.02.0-rc1 -> 21.02
|
||||||
|
// 19.07.8 -> 19.07
|
||||||
|
return version.replace("-SNAPSHOT", "").split(".").slice(0, 2).join(".");
|
||||||
|
}
|
||||||
|
|
||||||
function install_sysupgrade(url, keep, sha256) {
|
function install_sysupgrade(url, keep, sha256) {
|
||||||
displayStatus("notice spinning", E('p', _('Downloading firmware from server to browser')));
|
displayStatus("notice spinning", E('p', _('Downloading firmware from server to browser')));
|
||||||
request.get(url, {
|
request.get(url, {
|
||||||
|
@ -89,7 +98,6 @@ function request_sysupgrade(server_url, data) {
|
||||||
case 200:
|
case 200:
|
||||||
var res = response.json()
|
var res = response.json()
|
||||||
var image;
|
var image;
|
||||||
console.log(res)
|
|
||||||
for (image of res.images) {
|
for (image of res.images) {
|
||||||
if (image.type == "sysupgrade") {
|
if (image.type == "sysupgrade") {
|
||||||
break;
|
break;
|
||||||
|
@ -216,9 +224,10 @@ function request_sysupgrade(server_url, data) {
|
||||||
|
|
||||||
function check_sysupgrade(server_url, current_version, target, board_name, packages) {
|
function check_sysupgrade(server_url, current_version, target, board_name, packages) {
|
||||||
displayStatus("notice spinning", E('p', _('Searching for an available sysupgrade')));
|
displayStatus("notice spinning", E('p', _('Searching for an available sysupgrade')));
|
||||||
var current_branch = current_version.split(".").slice(0, 2).join(".");
|
var current_branch = get_branch(current_version);
|
||||||
var advanced_mode = uci.get_first('attendedsysupgrade', 'client', 'advanced_mode') || 0;
|
var advanced_mode = uci.get_first('attendedsysupgrade', 'client', 'advanced_mode') || 0;
|
||||||
var candidates = [];
|
var candidates = [];
|
||||||
|
|
||||||
fetch(server_url + "/api/latest")
|
fetch(server_url + "/api/latest")
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
@ -226,7 +235,7 @@ function check_sysupgrade(server_url, current_version, target, board_name, packa
|
||||||
candidates.push("SNAPSHOT");
|
candidates.push("SNAPSHOT");
|
||||||
} else {
|
} else {
|
||||||
for (let version of response["latest"]) {
|
for (let version of response["latest"]) {
|
||||||
var branch = version.split(".").slice(0, 2).join(".");
|
var branch = get_branch(version);
|
||||||
|
|
||||||
// already latest version installed
|
// already latest version installed
|
||||||
if (current_version == version) {
|
if (current_version == version) {
|
||||||
|
@ -249,8 +258,6 @@ function check_sysupgrade(server_url, current_version, target, board_name, packa
|
||||||
if (candidates) {
|
if (candidates) {
|
||||||
var m, s, o;
|
var m, s, o;
|
||||||
|
|
||||||
console.log(candidates);
|
|
||||||
|
|
||||||
var mapdata = {
|
var mapdata = {
|
||||||
request: {
|
request: {
|
||||||
board_name: board_name,
|
board_name: board_name,
|
||||||
|
|
Loading…
Reference in a new issue