1
0
mirror of https://github.com/pcvolkmer/osc-variant.git synced 2025-04-19 19:56:50 +00:00

Strip content that is included in system library

This commit is contained in:
Paul-Christian Volkmer 2023-08-31 16:10:19 +02:00
parent 7d6a6ee9b3
commit af4ec8898a
4 changed files with 34 additions and 0 deletions

View File

@ -74,6 +74,12 @@ nach Namen zu sortieren.
Dies erlaubt eine konsistente Reihenfolge der Einträge, wodurch ein direkter Vergleich mit Vorversionen ermöglicht wird. Dies erlaubt eine konsistente Reihenfolge der Einträge, wodurch ein direkter Vergleich mit Vorversionen ermöglicht wird.
ACHTUNG: Es kann sein, dass dadurch ein Import der resultierenden OSC-Datei nicht mehr möglich ist, da das genaue Verhalten des Imports aktuell noch nicht bekannt ist. ACHTUNG: Es kann sein, dass dadurch ein Import der resultierenden OSC-Datei nicht mehr möglich ist, da das genaue Verhalten des Imports aktuell noch nicht bekannt ist.
#### Entfernen von Inhalten der Systembibliothek bei Modifikation
über die experimentelle Option `--x-strip` ist es möglich, die in der OSC-Datei enthaltenen und beim Import nicht genutzten Inhalte aus der Systembibliothek zu entfernen.
Hierbei werden alle Inhalte entfernt, die im Ordner "ONKOSTAR Bibliothek" enthalten sind, beim Import jedoch ignoriert werden.
## Profile ## Profile
Zum Erstellen von Varianten einer OSC-Datei wird eine Profildatei im YAML-Format verwendet. Zum Erstellen von Varianten einer OSC-Datei wird eine Profildatei im YAML-Format verwendet.

View File

@ -66,6 +66,11 @@ pub enum Command {
help = "EXPERIMENTELL: Sortiere Kataloge und Formulare nach Name (Optional).\nKann negative Auswirkungen auf den ordnungsgemäßen Import haben." help = "EXPERIMENTELL: Sortiere Kataloge und Formulare nach Name (Optional).\nKann negative Auswirkungen auf den ordnungsgemäßen Import haben."
)] )]
sorted: bool, sorted: bool,
#[arg(
long = "x-strip",
help = "EXPERIMENTELL: Entferne Einträge aus der Systembibliothek die nicht importiert werden (Optional).\nKann negative Auswirkungen auf den ordnungsgemäßen Import haben."
)]
strip: bool,
}, },
#[command(about = "Vergleiche zwei Dateien anhand der Revision der enthaltenen Inhalte")] #[command(about = "Vergleiche zwei Dateien anhand der Revision der enthaltenen Inhalte")]
Diff { Diff {

View File

@ -130,6 +130,7 @@ fn main() -> Result<(), Box<dyn Error>> {
outputfile, outputfile,
compact, compact,
sorted, sorted,
strip,
} => { } => {
let data = &mut read_inputfile(inputfile)?; let data = &mut read_inputfile(inputfile)?;
@ -144,6 +145,10 @@ fn main() -> Result<(), Box<dyn Error>> {
data.sorted(); data.sorted();
} }
if strip {
data.strip_system_library_content();
}
let mut buf = String::new(); let mut buf = String::new();
let mut serializer = Serializer::new(&mut buf); let mut serializer = Serializer::new(&mut buf);

View File

@ -172,6 +172,24 @@ impl OnkostarEditor {
}); });
} }
pub fn strip_system_library_content(&mut self) {
self.editor
.property_catalogue
.retain(|e| !e.is_system_library_content());
self.editor
.data_catalogue
.retain(|e| !e.is_system_library_content());
self.editor
.data_form
.retain(|e| !e.is_system_library_content());
self.editor
.unterformular
.retain(|e| !e.is_system_library_content());
}
pub fn print_diff(&mut self, other: &mut Self, strict: bool) { pub fn print_diff(&mut self, other: &mut Self, strict: bool) {
println!(); println!();