used by command-not-found to lookup which package ships which command. Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> ---
Notes: this is technically a breaking change, but the only user of this already has a fallback match arm. I wonder whether we should mark this as non-exhaustive? src/deb822/release_file.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/deb822/release_file.rs b/src/deb822/release_file.rs index 6668450..2b7245b 100644 --- a/src/deb822/release_file.rs +++ b/src/deb822/release_file.rs @@ -51,6 +51,8 @@ pub type Component = String; /// `Packages` and `Sources` will contain further reference to binary or source package files. /// These are handled in `PackagesFile` and `SourcesFile` respectively. pub enum FileReferenceType { + /// A `Commands` index listing command to package mappings + Commands(Architecture, Option<CompressionType>), /// A `Contents` index listing contents of binary packages Contents(Architecture, Option<CompressionType>), /// A `Contents` index listing contents of binary udeb packages @@ -123,6 +125,20 @@ impl FileReferenceType { Ok(FileReferenceType::Unknown) } } + "cnf" => { + if let Some(rest) = rest.strip_prefix("Commands-") { + if let Some((arch, ext)) = rest.rsplit_once('.') { + Ok(FileReferenceType::Commands( + arch.to_owned(), + FileReferenceType::match_compression(ext).ok().flatten(), + )) + } else { + Ok(FileReferenceType::Commands(rest.to_owned(), None)) + } + } else { + Ok(FileReferenceType::Unknown) + } + }, "dep11" => { if let Some((_path, ext)) = rest.rsplit_once('.') { Ok(FileReferenceType::Dep11( @@ -198,7 +214,8 @@ impl FileReferenceType { pub fn compression(&self) -> Option<CompressionType> { match *self { - FileReferenceType::Contents(_, comp) + FileReferenceType::Commands(_, comp) + | FileReferenceType::Contents(_, comp) | FileReferenceType::ContentsUdeb(_, comp) | FileReferenceType::Packages(_, comp) | FileReferenceType::Sources(comp) -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel