Port composepost to cxx-rs

This one was easy.
This commit is contained in:
Colin Walters 2021-01-07 18:35:24 +00:00 committed by OpenShift Merge Robot
parent 52eaa6b6b6
commit 4b233daca7
3 changed files with 10 additions and 23 deletions

View File

@ -84,29 +84,12 @@ fn postprocess_subs_dist(rootfs_dfd: &openat::Dir) -> Result<()> {
// This function is called from rpmostree_postprocess_final(); think of // 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. // it as the bits of that function that we've chosen to implement in Rust.
fn compose_postprocess_final(rootfs_dfd: &openat::Dir) -> Result<()> { pub(crate) fn compose_postprocess_final(rootfs_dfd: i32) -> Result<()> {
let rootfs_dfd = crate::ffiutil::ffi_view_openat_dir(rootfs_dfd);
let tasks = [ let tasks = [
postprocess_useradd, postprocess_useradd,
postprocess_presets, postprocess_presets,
postprocess_subs_dist, postprocess_subs_dist,
]; ];
tasks.par_iter().try_for_each(|f| f(rootfs_dfd)) tasks.par_iter().try_for_each(|f| f(&rootfs_dfd))
} }
mod ffi {
use super::*;
use glib_sys;
use libc;
use crate::ffiutil::*;
#[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::*;

View File

@ -48,6 +48,11 @@ mod ffi {
fn get_systemctl_wrapper() -> &'static [u8]; fn get_systemctl_wrapper() -> &'static [u8];
} }
// composepost.rs
extern "Rust" {
fn compose_postprocess_final(rootfs_dfd: i32) -> Result<()>;
}
// initramfs.rs // initramfs.rs
extern "Rust" { extern "Rust" {
fn get_dracut_random_cpio() -> &'static [u8]; fn get_dracut_random_cpio() -> &'static [u8];
@ -105,7 +110,7 @@ pub(crate) use client::*;
mod cliwrap; mod cliwrap;
pub use cliwrap::*; pub use cliwrap::*;
mod composepost; mod composepost;
pub use self::composepost::*; pub(crate) use composepost::*;
mod core; mod core;
use crate::core::*; use crate::core::*;
mod history; mod history;

View File

@ -984,8 +984,7 @@ rpmostree_postprocess_final (int rootfs_dfd,
error)) error))
return FALSE; return FALSE;
if (!ror_compose_postprocess_final (rootfs_dfd, error)) rpmostreecxx::compose_postprocess_final (rootfs_dfd);
return FALSE;
if (selinux) if (selinux)
{ {