From b79ecfb284d57f18c864b905fa5f96905bec5366 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Sun, 27 Nov 2016 10:48:32 +0100 Subject: [PATCH] indexer: Fix bug in Contents file parsing + decrease cron verbosity Turns out that not all Contents files heave a header. --- indexer/src/sys_deb.rs | 15 +++++++-------- util/common.sh | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/indexer/src/sys_deb.rs b/indexer/src/sys_deb.rs index 4937b5c..82facaf 100644 --- a/indexer/src/sys_deb.rs +++ b/indexer/src/sys_deb.rs @@ -18,21 +18,20 @@ fn get_contents(f: Option) -> Result> { let rd = archive::Archive::open_raw(&mut fd)?; let brd = BufReader::new(rd); let mut pkgs = HashSet::new(); - let mut filecnt = -1; + let mut filecnt = 0; let mut mancnt = 0; for line in brd.split(b'\n') { let line = line?; let line = match str::from_utf8(&line) { Ok(x) => x, _ => continue }; - if line.starts_with("FILE ") { - filecnt = 0; - continue; - } else if filecnt < 0 { + let mut it = line.split(' '); + + let pkg = it.next_back().unwrap(); + if !pkg.contains('/') || pkg == "LOCATION" { continue; } filecnt += 1; - let mut it = line.split(' '); - let pkg = it.next_back().unwrap(); + let path = it.fold(String::new(), |acc, x| acc + " " + x); if man::ismanpath(&path.trim()) { mancnt += 1; @@ -42,7 +41,7 @@ fn get_contents(f: Option) -> Result> { } } - debug!("Found {}/{} man files in {} relevant packages from {}", mancnt, filecnt, pkgs.len(), f.path); + info!("Found {}/{} man files in {} relevant packages from {}", mancnt, filecnt, pkgs.len(), f.path); Ok(pkgs) } diff --git a/util/common.sh b/util/common.sh index a902ab6..5d028d2 100644 --- a/util/common.sh +++ b/util/common.sh @@ -2,8 +2,8 @@ test -f .config && source ./.config index() { - echo "====> indexer -vv $@" - ./indexer -vv $@ 2>&1 + echo "====> indexer -v $@" + ./indexer -v $@ 2>&1 echo }