compose: Honor --dry-run --touch-if-changed
Some people using Jenkins jobs and the like may want to separate "trigger detection" from execution. If combined with `--cachedir`, it's reasonably efficient to separate the two. Closes: #508 Approved by: jlebon
This commit is contained in:
parent
47ba21aca1
commit
d45c0253a0
@ -566,6 +566,28 @@ compose_strv_contains_prefix (gchar **strv,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
process_touch_if_changed (GError **error)
|
||||||
|
{
|
||||||
|
glnx_fd_close int fd = -1;
|
||||||
|
|
||||||
|
if (!opt_touch_if_changed)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
fd = open (opt_touch_if_changed, O_CREAT|O_WRONLY|O_NOCTTY, 0644);
|
||||||
|
if (fd == -1)
|
||||||
|
{
|
||||||
|
glnx_set_prefix_error_from_errno (error, "Updating '%s': ", opt_touch_if_changed);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if (futimens (fd, NULL) == -1)
|
||||||
|
{
|
||||||
|
glnx_set_error_from_errno (error);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
rpmostree_compose_builtin_tree (int argc,
|
rpmostree_compose_builtin_tree (int argc,
|
||||||
@ -868,7 +890,12 @@ rpmostree_compose_builtin_tree (int argc,
|
|||||||
}
|
}
|
||||||
else if (opt_dry_run)
|
else if (opt_dry_run)
|
||||||
{
|
{
|
||||||
g_print ("--dry-run complete, exiting\n");
|
g_print ("--dry-run complete");
|
||||||
|
if (opt_touch_if_changed)
|
||||||
|
g_print (", updating --touch-if-changed=%s", opt_touch_if_changed);
|
||||||
|
g_print ("; exiting\n");
|
||||||
|
if (!process_touch_if_changed (error))
|
||||||
|
goto out;
|
||||||
exit_status = EXIT_SUCCESS;
|
exit_status = EXIT_SUCCESS;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -940,20 +967,8 @@ rpmostree_compose_builtin_tree (int argc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opt_touch_if_changed)
|
if (!process_touch_if_changed (error))
|
||||||
{
|
|
||||||
glnx_fd_close int fd = open (opt_touch_if_changed, O_CREAT|O_WRONLY|O_NOCTTY, 0644);
|
|
||||||
if (fd == -1)
|
|
||||||
{
|
|
||||||
glnx_set_prefix_error_from_errno (error, "Updating '%s': ", opt_touch_if_changed);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
if (futimens (fd, NULL) == -1)
|
|
||||||
{
|
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
exit_status = EXIT_SUCCESS;
|
exit_status = EXIT_SUCCESS;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user