Add dryrun option

This commit is contained in:
Jan Schneider 2017-06-16 22:18:28 +02:00
parent 565c8c0139
commit 2ef7169ed5
3 changed files with 23 additions and 4 deletions

View File

@ -208,9 +208,13 @@ proc ::rmupdate::check_sizes {image} {
write_log "Sizes of filesystems checked successfully."
}
proc ::rmupdate::update_filesystems {image} {
proc ::rmupdate::update_filesystems {image {dryrun 0}} {
variable mnt_new
variable mnt_cur
set extra_args ""
if {$dryrun != 0} {
set extra_args "--dry-run"
}
write_log "Updating filesystems."
@ -224,7 +228,7 @@ proc ::rmupdate::update_filesystems {image} {
mount_system_partition $partition $mnt_cur
write_log "Rsyncing filesystem of partition ${partition}."
set data [exec rsync --progress --archive --delete "${mnt_new}/" "${mnt_cur}"]
set data [exec rsync ${extra_args} --progress --archive --delete "${mnt_new}/" "${mnt_cur}"]
write_log "Rsync finished."
umount $mnt_new

View File

@ -112,9 +112,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
installation_running = version;
$('[data-install-version="' + installation_running + '"]').addClass('loading');
var reboot = $('#reboot-after-install').is(':checked');
var dryrun = $('#dryrun').is(':checked');
display_message('info', 'Installing firmware ' + version + '.', 6000000);
clear_message();
rest("POST", "/start_install_firmware", JSON.stringify({"version":version, "reboot":reboot}),
rest("POST", "/start_install_firmware", JSON.stringify({"version":version, "reboot":reboot, "dryrun":dryrun}),
function(data) {
$('[data-install-version="' + installation_running + '"]').removeClass('loading');
installation_running = "";
@ -228,6 +229,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<tbody>
</tbody>
</table>
<div class="ui checkbox">
<input id="dryrun" type="checkbox">
<label>Perform a trial run with no changes made</label>
</div>
<br />
<div class="ui checkbox">
<input id="reboot-after-install" type="checkbox" checked="checked">
<label>Reboot system after installation</label>

View File

@ -50,6 +50,7 @@ proc process {} {
} elseif {[lindex $path 1] == "start_install_firmware"} {
regexp {\"version\"\s*:\s*\"([\d\.]+)\"} $data match version
regexp {\"reboot\"\s*:\s*(true|false)} $data match reboot
regexp {\"dryrun\"\s*:\s*(true|false)} $data match dryrun
if { [info exists version] && $version != "" } {
if { ![info exists reboot] } {
set reboot "true"
@ -59,7 +60,15 @@ proc process {} {
} else {
set reboot 0
}
return "\"[rmupdate::install_firmware_version $version $reboot]\""
if { ![info exists reboot] } {
set dryrun "false"
}
if {$dryrun == "true"} {
set dryrun 1
} else {
set dryrun 0
}
return "\"[rmupdate::install_firmware_version $version $reboot $dryrun]\""
} else {
error "Invalid version: ${data}"
}