Compare commits

...

2 Commits

Author SHA1 Message Date
Nathan Fisher
acbdf2d992 Cargo fmt 2023-04-07 19:11:35 -04:00
Nathan Fisher
0ab84def2e Make package::User and package::Group public 2023-04-07 19:08:23 -04:00
3 changed files with 30 additions and 24 deletions

View File

@ -1,13 +1,12 @@
pub mod tar;
mod package; mod package;
mod plist; mod plist;
pub mod tar;
mod version; mod version;
pub use { pub use {
deku, deku,
package::{Arch, Dependency, Package, Specs}, package::{Arch, Dependency, Group, Package, Specs, User},
plist::*, plist::*,
ron, ron, sha2,
sha2,
version::*, version::*,
}; };

View File

@ -1,10 +1,10 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::{fmt, str::FromStr, error::Error}; use std::{error::Error, fmt, str::FromStr};
#[cfg(target_arch = "arm")] #[cfg(target_arch = "arm")]
pub const HOST_ARCH: Arch = Arch::armv7l; pub const HOST_ARCH: Arch = Arch::armv7l;
#[cfg(target_arch = "aarch64")] #[cfg(target_arch = "aarch64")]
pub const HOST_ARCH: Arch = Arch::aarch64; pub const HOST_ARCH: Arch = Arch::aarch64;
#[cfg(target_arch = "x86")] #[cfg(target_arch = "x86")]
pub const HOST_ARCH: Arch = Arch::i486; pub const HOST_ARCH: Arch = Arch::i486;
#[cfg(target_arch = "riscv64")] #[cfg(target_arch = "riscv64")]
@ -33,16 +33,20 @@ impl Default for Arch {
impl fmt::Display for Arch { impl fmt::Display for Arch {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", match self { write!(
Self::armv7l => "armv7l", f,
Self::aarch64 => "aarch64", "{}",
Self::i486 => "i486", match self {
Self::i586 => "i586", Self::armv7l => "armv7l",
Self::i686 => "i686", Self::aarch64 => "aarch64",
Self::riscv64 => "riscv64", Self::i486 => "i486",
Self::x86_64 => "x86_64", Self::i586 => "i586",
Self::any => "any", Self::i686 => "i686",
}) Self::riscv64 => "riscv64",
Self::x86_64 => "x86_64",
Self::any => "any",
}
)
} }
} }
@ -69,7 +73,7 @@ impl FromStr for Arch {
"arm64" | "aarch64" | "armv8" => Ok(Self::aarch64), "arm64" | "aarch64" | "armv8" => Ok(Self::aarch64),
"riscv" | "riscv64" => Ok(Self::riscv64), "riscv" | "riscv64" => Ok(Self::riscv64),
"any" => Ok(Self::any), "any" => Ok(Self::any),
_ => Err(ParseArchError) _ => Err(ParseArchError),
} }
} }
} }

View File

@ -3,6 +3,7 @@ mod dependency;
mod specs; mod specs;
use { use {
crate::tar::{Node, Owner},
crate::{Plist, Version}, crate::{Plist, Version},
ron::ser::{to_string_pretty, PrettyConfig}, ron::ser::{to_string_pretty, PrettyConfig},
serde::{Deserialize, Serialize}, serde::{Deserialize, Serialize},
@ -13,7 +14,6 @@ use {
io::{BufWriter, Write}, io::{BufWriter, Write},
path::Path, path::Path,
}, },
crate::tar::{Node, Owner},
}; };
pub use {arch::Arch, dependency::Dependency, specs::Specs}; pub use {arch::Arch, dependency::Dependency, specs::Specs};
@ -88,10 +88,7 @@ impl Package {
to_string_pretty(self, cfg) to_string_pretty(self, cfg)
} }
pub fn save_ron_and_create_tar_node( pub fn save_ron_and_create_tar_node(&self, outdir: &Path) -> Result<Node, Box<dyn Error>> {
&self,
outdir: &Path,
) -> Result<Node, Box<dyn Error>> {
if !outdir.exists() { if !outdir.exists() {
fs::create_dir_all(outdir)?; fs::create_dir_all(outdir)?;
} }
@ -113,12 +110,18 @@ impl Package {
/// Returns the formatted full package name including version and release strings /// Returns the formatted full package name including version and release strings
pub fn fullname(&self) -> String { pub fn fullname(&self) -> String {
format!("{}-{}_{}_{}", self.name, self.version, self.release, self.arch) format!(
"{}-{}_{}_{}",
self.name, self.version, self.release, self.arch
)
} }
/// Returns the name of the package archive /// Returns the name of the package archive
pub fn archive_name(&self) -> String { pub fn archive_name(&self) -> String {
format!("{}-{}_{}_{}.tar.zstd", self.name, self.version, self.release, self.arch) format!(
"{}-{}_{}_{}.tar.zstd",
self.name, self.version, self.release, self.arch
)
} }
/// Tests whether this package is an update for another /// Tests whether this package is an update for another