bin/admin: Check for booted deployment to see if we should reboot

Rather than calling `ostree_sysroot_get_path()`, which I'd like to deprecate for
the same reason as `ostree_repo_get_path()`.

Closes: #1123
Approved by: jlebon
This commit is contained in:
Colin Walters 2017-09-01 14:43:33 -04:00 committed by Atomic Bot
parent b71fdbcb5c
commit aef5a7331e
1 changed files with 8 additions and 6 deletions

View File

@ -151,13 +151,15 @@ ot_admin_sysroot_lock (OstreeSysroot *sysroot,
gboolean gboolean
ot_admin_execve_reboot (OstreeSysroot *sysroot, GError **error) ot_admin_execve_reboot (OstreeSysroot *sysroot, GError **error)
{ {
g_autoptr(GFile) real_sysroot = g_file_new_for_path ("/"); OstreeDeployment *booted = ostree_sysroot_get_booted_deployment (sysroot);
if (g_file_equal (ostree_sysroot_get_path (sysroot), real_sysroot)) /* If the sysroot isn't booted, we shouldn't reboot, even if somehow the user
{ * asked for it; might accidentally be specified in a build script, etc.
if (execlp ("systemctl", "systemctl", "reboot", NULL) < 0) */
return glnx_throw_errno (error); if (!booted)
} return TRUE;
if (execlp ("systemctl", "systemctl", "reboot", NULL) < 0)
return glnx_throw_errno_prefix (error, "execve(systemctl reboot)");
return TRUE; return TRUE;
} }