diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/compare.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/compare.rs b/src/compare.rs index 7088886..8b59c1c 100644 --- a/src/compare.rs +++ b/src/compare.rs @@ -70,8 +70,13 @@ pub fn compare(left: &ArtifactManifest, right: &ArtifactManifest) -> ComparisonR compare_records(&left.files, &right.files, |record| &record.path, |path, change| { SemanticDifference::File { path: path.to_owned(), change } }, &mut differences); - if left.initrd != right.initrd { - differences.push(SemanticDifference::Initrd { change: Change::Changed }); + match (&left.initrd, &right.initrd) { + (None, Some(_)) => differences.push(SemanticDifference::Initrd { change: Change::Added }), + (Some(_), None) => differences.push(SemanticDifference::Initrd { change: Change::Removed }), + (Some(left), Some(right)) if left != right => { + differences.push(SemanticDifference::Initrd { change: Change::Changed }); + } + _ => {} } compare_records(&left.services, &right.services, |record| &record.name, |name, change| { SemanticDifference::Service { name: name.to_owned(), change } |