Skip to content

Commit

Permalink
compose: Add a stub "postprocess" entrypoint in Rust
Browse files Browse the repository at this point in the history
Prep for more code.

Closes: #1726
Approved by: jlebon
  • Loading branch information
cgwalters authored and rh-atomic-bot committed Jan 7, 2019
1 parent 43bd9f4 commit bb4a17d
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
43 changes: 43 additions & 0 deletions rust/src/composepost.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Copyright (C) 2018 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

use openat;
use failure::Fallible;

// This function is called from rpmostree_postprocess_final(); think of
// it as the bits of that function that we've chosen to implement in Rust.
fn compose_postprocess_final(_rootfs_dfd: &openat::Dir) -> Fallible<()> {
Ok(())
}

mod ffi {
use super::*;
use ffiutil::*;
use glib_sys;
use libc;

#[no_mangle]
pub extern "C" fn ror_compose_postprocess_final(
rootfs_dfd: libc::c_int,
gerror: *mut *mut glib_sys::GError,
) -> libc::c_int {
let rootfs_dfd = ffi_view_openat_dir(rootfs_dfd);
int_glib_error(compose_postprocess_final(&rootfs_dfd), gerror)
}
}
pub use self::ffi::*;
2 changes: 2 additions & 0 deletions rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ mod ffiutil;

mod treefile;
pub use treefile::*;
mod composepost;
pub use composepost::*;
mod progress;
pub use progress::*;
mod journal;
Expand Down
4 changes: 4 additions & 0 deletions src/libpriv/rpmostree-postprocess.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#include "rpmostree-core.h"
#include "rpmostree-json-parsing.h"
#include "rpmostree-util.h"
#include "rpmostree-rust.h"

typedef enum {
RPMOSTREE_POSTPROCESS_BOOT_LOCATION_BOTH,
Expand Down Expand Up @@ -958,6 +959,9 @@ rpmostree_postprocess_final (int rootfs_dfd,
{
GLNX_AUTO_PREFIX_ERROR ("Finalizing rootfs", error);

if (!ror_compose_postprocess_final (rootfs_dfd, error))
return FALSE;

/* Use installation of the tmpfiles integration as an "idempotence" marker to
* avoid doing postprocessing twice, which can happen when mixing `compose
* postprocess-root` with `compose commit`.
Expand Down

0 comments on commit bb4a17d

Please sign in to comment.