diff options
Diffstat (limited to 'sb_builder/repository.py')
| -rw-r--r-- | sb_builder/repository.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sb_builder/repository.py b/sb_builder/repository.py index 29f4291..38c6ecc 100644 --- a/sb_builder/repository.py +++ b/sb_builder/repository.py @@ -106,7 +106,10 @@ def scan(path): m = PKGFILE.match(os.path.basename(f)) if not m: continue - st = os.stat(f) + try: + st = os.stat(f) + except FileNotFoundError: + continue # slackrepo replaced it since the glob item = os.path.relpath(os.path.dirname(f), path) # category/pkg info = meta.get(os.path.basename(f)) rows.append({**m.groupdict(), "category": item.split("/")[0], "file": f, @@ -283,7 +286,7 @@ class RepositoryTab(QWidget): def work(): try: self.scanned.emit(gen, scan(path), "") - except OSError as e: + except Exception as e: # the thread's boundary: never stuck at loading self.scanned.emit(gen, None, str(e)) threading.Thread(target=work, daemon=True).start() @@ -292,12 +295,13 @@ class RepositoryTab(QWidget): return # an older Refresh, overtaken self.model.set_rows(data["rows"] if data else []) self.stats.setText(err or summary(data)) - self.update_count() + self.refilter() def refilter(self): on = {n for n, b in self.chips.items() if b.isChecked()} self.proxy.update(self.query.text(), on - {"unpublished"}, "unpublished" in on) self.update_count() + self.show_detail(self.table.currentIndex(), None) # a reset or filter can drop it def update_count(self): self.count.setText(f"{self.proxy.rowCount():,} shown") |
