From 8bb681cbd2e30efae44fd6084187fd965fa076c2 Mon Sep 17 00:00:00 2001 From: overweight Date: Mon, 7 Jun 2021 09:58:38 -0400 Subject: [PATCH] add_libs_and_bins --- Cargo.toml | 21 ++++++++------------- docker-run.sh | 1 + libs/cgroup/Cargo.toml | 9 +++++++++ libs/cgroup/src/lib.rs | 7 +++++++ libs/dbus/Cargo.toml | 9 +++++++++ libs/dbus/src/lib.rs | 7 +++++++ libs/event/Cargo.toml | 9 +++++++++ libs/event/src/lib.rs | 7 +++++++ libs/job/Cargo.toml | 9 +++++++++ libs/job/src/lib.rs | 7 +++++++ libs/udev/Cargo.toml | 9 +++++++++ libs/udev/src/lib.rs | 7 +++++++ libs/unit/Cargo.toml | 9 +++++++++ libs/unit/src/lib.rs | 7 +++++++ libs/utils/Cargo.toml | 12 ++++++++++++ libs/utils/src/lib.rs | 1 + libs/utils/src/macros.rs | 14 ++++++++++++++ src/bootup/Cargo.toml | 9 +++++++++ src/bootup/src/main.rs | 3 +++ src/loggerd/Cargo.toml | 9 +++++++++ src/loggerd/src/main.rs | 3 +++ src/logind/Cargo.toml | 9 +++++++++ src/logind/src/lib.rs | 7 +++++++ src/main/Cargo.toml | 15 +++++++++++++++ src/{ => main/src}/main.rs | 4 +++- src/manager/Cargo.toml | 9 +++++++++ src/manager/src/main.rs | 3 +++ src/shutdown/Cargo.toml | 9 +++++++++ src/shutdown/src/main.rs | 3 +++ src/udevd/Cargo.toml | 9 +++++++++ src/udevd/src/lib.rs | 7 +++++++ tests/Cargo.toml | 9 +++++++++ tests/src/main.rs | 3 +++ 33 files changed, 242 insertions(+), 14 deletions(-) create mode 100644 libs/cgroup/Cargo.toml create mode 100644 libs/cgroup/src/lib.rs create mode 100644 libs/dbus/Cargo.toml create mode 100644 libs/dbus/src/lib.rs create mode 100644 libs/event/Cargo.toml create mode 100644 libs/event/src/lib.rs create mode 100644 libs/job/Cargo.toml create mode 100644 libs/job/src/lib.rs create mode 100644 libs/udev/Cargo.toml create mode 100644 libs/udev/src/lib.rs create mode 100644 libs/unit/Cargo.toml create mode 100644 libs/unit/src/lib.rs create mode 100644 libs/utils/Cargo.toml create mode 100644 libs/utils/src/lib.rs create mode 100644 libs/utils/src/macros.rs create mode 100644 src/bootup/Cargo.toml create mode 100644 src/bootup/src/main.rs create mode 100644 src/loggerd/Cargo.toml create mode 100644 src/loggerd/src/main.rs create mode 100644 src/logind/Cargo.toml create mode 100644 src/logind/src/lib.rs create mode 100644 src/main/Cargo.toml rename src/{ => main/src}/main.rs (96%) create mode 100644 src/manager/Cargo.toml create mode 100644 src/manager/src/main.rs create mode 100644 src/shutdown/Cargo.toml create mode 100644 src/shutdown/src/main.rs create mode 100644 src/udevd/Cargo.toml create mode 100644 src/udevd/src/lib.rs create mode 100644 tests/Cargo.toml create mode 100644 tests/src/main.rs diff --git a/Cargo.toml b/Cargo.toml index 7ad78a13..e5b4d61e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,8 @@ -[package] -name = "process1" -version = "0.1.0" -authors = ["Shinwell Hu "] -edition = "2018" - -license = "MulanPSL-2.0" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -signal-hook = { version = "0.3.7", features = ["extended-siginfo"] } - +[workspace] +members = [ + "libs/utils", + "libs/event", + "libs/dbus", + "src/main", + "tests", +] diff --git a/docker-run.sh b/docker-run.sh index 1fd24a28..35ef3e18 100755 --- a/docker-run.sh +++ b/docker-run.sh @@ -47,6 +47,7 @@ cargo build --target x86_64-unknown-linux-musl || exit 1 #!.docker build echo -e "\n\n\n---!!!DOCKER BUILD!!!---" +docker rmi process1 -f > /dev/null 2>&1 docker build --no-cache --tag process1 `pwd` || exit 1 #!.docker run diff --git a/libs/cgroup/Cargo.toml b/libs/cgroup/Cargo.toml new file mode 100644 index 00000000..b9999387 --- /dev/null +++ b/libs/cgroup/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "cgroup" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/cgroup/src/lib.rs b/libs/cgroup/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/cgroup/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/dbus/Cargo.toml b/libs/dbus/Cargo.toml new file mode 100644 index 00000000..ad47cd97 --- /dev/null +++ b/libs/dbus/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "dbus" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/dbus/src/lib.rs b/libs/dbus/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/dbus/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/event/Cargo.toml b/libs/event/Cargo.toml new file mode 100644 index 00000000..591a69e3 --- /dev/null +++ b/libs/event/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "event" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/event/src/lib.rs b/libs/event/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/event/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/job/Cargo.toml b/libs/job/Cargo.toml new file mode 100644 index 00000000..2c506d8c --- /dev/null +++ b/libs/job/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "job" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/job/src/lib.rs b/libs/job/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/job/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/udev/Cargo.toml b/libs/udev/Cargo.toml new file mode 100644 index 00000000..e9d2444c --- /dev/null +++ b/libs/udev/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "udev" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/udev/src/lib.rs b/libs/udev/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/udev/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/unit/Cargo.toml b/libs/unit/Cargo.toml new file mode 100644 index 00000000..7a7e1f70 --- /dev/null +++ b/libs/unit/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "unit" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/libs/unit/src/lib.rs b/libs/unit/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/libs/unit/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/libs/utils/Cargo.toml b/libs/utils/Cargo.toml new file mode 100644 index 00000000..ff2cec42 --- /dev/null +++ b/libs/utils/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "utils" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["dylib", "rlib"] + +[dependencies] diff --git a/libs/utils/src/lib.rs b/libs/utils/src/lib.rs new file mode 100644 index 00000000..eda363d6 --- /dev/null +++ b/libs/utils/src/lib.rs @@ -0,0 +1 @@ +pub mod macros; diff --git a/libs/utils/src/macros.rs b/libs/utils/src/macros.rs new file mode 100644 index 00000000..3ae0c1d8 --- /dev/null +++ b/libs/utils/src/macros.rs @@ -0,0 +1,14 @@ +#![allow(unused_macros)] +#[macro_export] + +macro_rules! syscall { + ($fn: ident ( $($arg: expr),* $(,)* ) ) => {{ + let res = unsafe { libc::$fn($($arg, )*) }; + if res == -1 { + Err(std::io::Error::last_os_error()) + } else { + Ok(res) + } + }}; +} + diff --git a/src/bootup/Cargo.toml b/src/bootup/Cargo.toml new file mode 100644 index 00000000..b03c8583 --- /dev/null +++ b/src/bootup/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "bootup" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/bootup/src/main.rs b/src/bootup/src/main.rs new file mode 100644 index 00000000..e7a11a96 --- /dev/null +++ b/src/bootup/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/src/loggerd/Cargo.toml b/src/loggerd/Cargo.toml new file mode 100644 index 00000000..4315a66b --- /dev/null +++ b/src/loggerd/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "loggerd" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/loggerd/src/main.rs b/src/loggerd/src/main.rs new file mode 100644 index 00000000..e7a11a96 --- /dev/null +++ b/src/loggerd/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/src/logind/Cargo.toml b/src/logind/Cargo.toml new file mode 100644 index 00000000..ca1b9e38 --- /dev/null +++ b/src/logind/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "logind" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/logind/src/lib.rs b/src/logind/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/src/logind/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/src/main/Cargo.toml b/src/main/Cargo.toml new file mode 100644 index 00000000..8fe34953 --- /dev/null +++ b/src/main/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "process1" +version = "0.1.0" +authors = ["Shinwell Hu "] +edition = "2018" + +license = "MulanPSL-2.0" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +signal-hook = { version = "0.3.7", features = ["extended-siginfo"] } +utils = { path = "../../libs/utils" } +libc = { version = "^0.2" } + diff --git a/src/main.rs b/src/main/src/main.rs similarity index 96% rename from src/main.rs rename to src/main/src/main.rs index 2a927300..7dfdc111 100644 --- a/src/main.rs +++ b/src/main/src/main.rs @@ -1,3 +1,5 @@ +use utils::syscall; + use std::io::Error; use std::io::BufRead; use std::fs::File; @@ -29,6 +31,7 @@ fn main() -> Result<(), Error> { // inittab is obsolated by systemd, should we honor the legacy config in that ? // systemd use /etc/systemd/system/default.target, which is a sym link to actual target. // fork process to do system initializaion + println!("PID: {:?}", syscall!(fork())); match parse_inittab() { Err(why) => panic!("{:?}", why), @@ -52,6 +55,5 @@ fn main() -> Result<(), Error> { } } } - println!("Hello, world!"); Ok(()) } diff --git a/src/manager/Cargo.toml b/src/manager/Cargo.toml new file mode 100644 index 00000000..2b708697 --- /dev/null +++ b/src/manager/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "manager" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/manager/src/main.rs b/src/manager/src/main.rs new file mode 100644 index 00000000..e7a11a96 --- /dev/null +++ b/src/manager/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/src/shutdown/Cargo.toml b/src/shutdown/Cargo.toml new file mode 100644 index 00000000..ac0f04e4 --- /dev/null +++ b/src/shutdown/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "shutdown" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/shutdown/src/main.rs b/src/shutdown/src/main.rs new file mode 100644 index 00000000..e7a11a96 --- /dev/null +++ b/src/shutdown/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/src/udevd/Cargo.toml b/src/udevd/Cargo.toml new file mode 100644 index 00000000..76e29139 --- /dev/null +++ b/src/udevd/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "udevd" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/udevd/src/lib.rs b/src/udevd/src/lib.rs new file mode 100644 index 00000000..31e1bb20 --- /dev/null +++ b/src/udevd/src/lib.rs @@ -0,0 +1,7 @@ +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + assert_eq!(2 + 2, 4); + } +} diff --git a/tests/Cargo.toml b/tests/Cargo.toml new file mode 100644 index 00000000..558d991b --- /dev/null +++ b/tests/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "tests" +version = "0.1.0" +authors = ["overweight "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/tests/src/main.rs b/tests/src/main.rs new file mode 100644 index 00000000..e7a11a96 --- /dev/null +++ b/tests/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} -- Gitee