mirror of
https://github.com/pcvolkmer/osc-variant.git
synced 2025-04-19 19:56:50 +00:00
Merge pull request #21 from CCC-MF/issue_14
Issue #14: Embed existing DNPM profile files
This commit is contained in:
commit
a52eb9742e
@ -91,6 +91,15 @@ Ohne Profildatei wird die Datei lediglich eingelesen, Leerzeichen am Ende eines
|
||||
|
||||
Ohne eine Angabe der Ausgabedatei wird auf die Standardausgabe ausgegeben.
|
||||
|
||||
##### Enthaltene Profile
|
||||
|
||||
Die im Ordner [`examples/`](/examples) enthaltenen Profile für Standorte sind in der ausführbaren Anwendung enthalten
|
||||
und die Dateien müssen nicht explizit als Datei vorliegen:
|
||||
|
||||
* `--profile examples/dnpm-ukm.yml` => `--profile UKM`
|
||||
* `--profile examples/dnpm-ukw.yml` => `--profile UKW`
|
||||
* `--profile examples/dnpm-umg.yml` => `--profile UMG`
|
||||
|
||||
#### Unterbefehl `unzip-osb`
|
||||
|
||||
Ab Version 0.6.0 ist die Anwendung zudem in der Lage, die für eine Aktualisierung der OS-Bibliothek genutzten OSB-Dateien zu entpacken:
|
||||
|
@ -160,9 +160,14 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
let data = &mut read_inputfile(inputfile)?;
|
||||
|
||||
if let Some(profile) = profile {
|
||||
let profile = read_profile(profile.clone()).map_err(|_| {
|
||||
let profile = if profile.contains(".") {
|
||||
read_profile(profile.clone()).map_err(|_| {
|
||||
FileError::Reading(profile, "Kann Profildatei nicht lesen!".into())
|
||||
})?;
|
||||
})?
|
||||
} else {
|
||||
Profile::embedded_profile(profile.as_str())?
|
||||
};
|
||||
|
||||
data.apply_profile(&profile);
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,19 @@ pub struct Profile {
|
||||
pub forms: Vec<Form>,
|
||||
}
|
||||
|
||||
impl Profile {
|
||||
pub fn embedded_profile(name: &str) -> Result<Profile, String> {
|
||||
let s = match name {
|
||||
"UKM" => include_str!("../examples/dnpm-ukm.yml"),
|
||||
"UKW" => include_str!("../examples/dnpm-ukw.yml"),
|
||||
"UMG" => include_str!("../examples/dnpm-umg.yml"),
|
||||
_ => return Err(format!("Not an embedded profile: '{name}'")),
|
||||
};
|
||||
|
||||
Profile::from_str(s)
|
||||
}
|
||||
}
|
||||
|
||||
impl FromStr for Profile {
|
||||
type Err = String;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user