Skip to content

Commit

Permalink
app,daemon: Use public libostree's kargs API
Browse files Browse the repository at this point in the history
This deduplicates the code between the two repositories.

Closes: #1862

Signed-off-by: Rafael Fonseca <r4f4rfs@gmail.com>
  • Loading branch information
r4f4 authored and cgwalters committed Aug 21, 2019
1 parent acdd04d commit cac5aa4
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 852 deletions.
2 changes: 0 additions & 2 deletions Makefile-libpriv.am
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ librpmostreepriv_la_SOURCES = \
src/libpriv/rpmostree-unpacker-core.h \
src/libpriv/rpmostree-output.c \
src/libpriv/rpmostree-output.h \
src/libpriv/rpmostree-kargs-process.c \
src/libpriv/rpmostree-kargs-process.h \
src/libpriv/rpmostree-editor.c \
src/libpriv/rpmostree-editor.h \
src/libpriv/libsd-locale-util.c \
Expand Down
5 changes: 0 additions & 5 deletions Makefile-tests.am
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@ tests_check_test_utils_CPPFLAGS = $(testbin_cppflags)
tests_check_test_utils_CFLAGS = $(testbin_cflags)
tests_check_test_utils_LDADD = $(testbin_ldadd) libtest.la

tests_check_test_kargs_CPPFLAGS = $(testbin_cppflags)
tests_check_test_kargs_CFLAGS = $(testbin_cflags)
tests_check_test_kargs_LDADD = $(testbin_ldadd) libtest.la

tests_check_test_sysusers_CPPFLAGS = $(testbin_cppflags)
tests_check_test_sysusers_CFLAGS = $(testbin_cflags)
tests_check_test_sysusers_LDADD = $(testbin_ldadd) libtest.la
Expand All @@ -54,7 +50,6 @@ uninstalled_test_programs = \
tests/check/jsonutil \
tests/check/postprocess \
tests/check/test-utils \
tests/check/test-kargs \
tests/check/test-sysusers \
$(NULL)

Expand Down
13 changes: 6 additions & 7 deletions src/app/rpmostree-builtin-kargs.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
#include "rpmostree-libbuiltin.h"
#include "rpmostree-dbus-helpers.h"
#include "rpmostree-editor.h"
#include "rpmostree-kargs-process.h"
#include "rpmostree-util.h"
#include <libglnx.h>

Expand Down Expand Up @@ -63,20 +62,20 @@ kernel_arg_handle_editor (const char *input_kernel_arg,
{
g_autofree char *chomped_input = g_strchomp (g_strdup (input_kernel_arg));

__attribute__((cleanup(_ostree_kernel_args_cleanup))) OstreeKernelArgs *temp_kargs = _ostree_kernel_args_from_string (chomped_input);
g_autoptr(OstreeKernelArgs) temp_kargs = ostree_kernel_args_from_string (chomped_input);

/* We check existance of ostree argument, if it
* exists, we directly remove it. Also Note, since the current kernel
* arguments are directly collected from the boot config, we expect that
* there is only one value associated with ostree argument. Thus deleting
* by one value should not error out here.
*/
if (_ostree_kernel_args_get_last_value (temp_kargs, "ostree") != NULL)
if (ostree_kernel_args_get_last_value (temp_kargs, "ostree") != NULL)
{
if (!_ostree_kernel_args_delete (temp_kargs, "ostree", error))
if (!ostree_kernel_args_delete (temp_kargs, "ostree", error))
return FALSE;
}
g_autofree char* filtered_input = _ostree_kernel_args_to_string (temp_kargs);
g_autofree char* filtered_input = ostree_kernel_args_to_string (temp_kargs);

g_autofree char *input_string = g_strdup_printf ("\n"
"# Please enter the kernel arguments. Each kernel argument"
Expand Down Expand Up @@ -125,10 +124,10 @@ kernel_arg_handle_editor (const char *input_kernel_arg,
g_autofree char *kernel_args_str = g_string_free (g_steal_pointer (&kernel_arg_buf), FALSE);
g_strchomp (kernel_args_str);

__attribute__((cleanup(_ostree_kernel_args_cleanup))) OstreeKernelArgs *input_kargs = _ostree_kernel_args_from_string (kernel_args_str);
g_autoptr(OstreeKernelArgs) input_kargs = ostree_kernel_args_from_string (kernel_args_str);

/* We check again to see if the ostree argument got added by the user */
if (_ostree_kernel_args_get_last_value (input_kargs, "ostree") != NULL)
if (ostree_kernel_args_get_last_value (input_kargs, "ostree") != NULL)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
"You have an 'ostree' argument in your input, that is not going to be handled");
Expand Down
11 changes: 5 additions & 6 deletions src/daemon/rpmostreed-transaction-types.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
#include "rpmostree-core.h"
#include "rpmostree-importer.h"
#include "rpmostreed-utils.h"
#include "rpmostree-kargs-process.h"

static gboolean
vardict_lookup_bool (GVariantDict *dict,
Expand Down Expand Up @@ -2431,7 +2430,7 @@ kernel_arg_transaction_execute (RpmostreedTransaction *transaction,
rpmostree_transaction_set_title ((RPMOSTreeTransaction*)self, command_line ?: "kargs");

/* Read in the existing kernel args and convert those to an #OstreeKernelArg instance for API usage */
__attribute__((cleanup(_ostree_kernel_args_cleanup))) OstreeKernelArgs *kargs = _ostree_kernel_args_from_string (self->existing_kernel_args);
g_autoptr(OstreeKernelArgs) kargs = ostree_kernel_args_from_string (self->existing_kernel_args);
g_autoptr(RpmOstreeSysrootUpgrader) upgrader =
rpmostree_sysroot_upgrader_new (sysroot, self->osname, upgrader_flags,
cancellable, error);
Expand All @@ -2446,7 +2445,7 @@ kernel_arg_transaction_execute (RpmostreedTransaction *transaction,
for (char **iter = self->kernel_args_deleted; iter && *iter; iter++)
{
const char* arg = *iter;
if (!_ostree_kernel_args_delete (kargs, arg, error))
if (!ostree_kernel_args_delete (kargs, arg, error))
return FALSE;
}
}
Expand All @@ -2457,17 +2456,17 @@ kernel_arg_transaction_execute (RpmostreedTransaction *transaction,
for (char **iter = self->kernel_args_replaced; iter && *iter; iter++)
{
const char *arg = *iter;
if (!_ostree_kernel_args_new_replace (kargs, arg, error))
if (!ostree_kernel_args_new_replace (kargs, arg, error))
return FALSE;
}
}

if (self->kernel_args_added)
_ostree_kernel_args_append_argv (kargs, self->kernel_args_added);
ostree_kernel_args_append_argv (kargs, self->kernel_args_added);
}

/* After all the arguments are processed earlier, we convert it to a string list*/
g_auto(GStrv) kargs_strv = _ostree_kernel_args_to_strv (kargs);
g_auto(GStrv) kargs_strv = ostree_kernel_args_to_strv (kargs);
rpmostree_sysroot_upgrader_set_kargs (upgrader, kargs_strv);

if (!rpmostree_sysroot_upgrader_deploy (upgrader, command_line, NULL, cancellable, error))
Expand Down
Loading

0 comments on commit cac5aa4

Please sign in to comment.