* improve check command a little, check installed packages by default

This commit is contained in:
Eray Özkural
2006-06-07 20:50:48 +00:00
parent 44807cc9c1
commit 529d7a21ce
2 changed files with 13 additions and 8 deletions
+1 -1
View File
@@ -317,7 +317,7 @@ def check(package):
for file in files.list: for file in files.list:
if file.hash and file.type != "config" \ if file.hash and file.type != "config" \
and not os.path.islink('/' + file.path): and not os.path.islink('/' + file.path):
ctx.ui.info(_("Checking %s...") % file.path, noln=False, verbose=True) ctx.ui.info(_("Checking %s ") % file.path, noln=True, verbose=True)
if file.hash != util.sha1_file('/' + file.path): if file.hash != util.sha1_file('/' + file.path):
corrupt.append(file) corrupt.append(file)
ctx.ui.info("Corrupt file: %s" % file) ctx.ui.info("Corrupt file: %s" % file)
+12 -7
View File
@@ -733,13 +733,15 @@ Usage: info <package1> <package2> ... <packagen>
class Check(Command): class Check(Command):
"""Verify installation """Verify installation
Usage: check <package1> <package2> ... <packagen> Usage: check [<package1> <package2> ... <packagen>]
<packagei>: package name <packagei>: package name
A cryptographic checksum is stored for each installed A cryptographic checksum is stored for each installed
file. Check command uses the checksums to verify a package. file. Check command uses the checksums to verify a package.
Just give the names of packages. Just give the names of packages.
If no packages are given, checks all installed packages.
""" """
__metaclass__ = autocommand __metaclass__ = autocommand
@@ -749,14 +751,17 @@ Just give the names of packages.
name = ("check", None) name = ("check", None)
def run(self): def run(self):
if not self.args:
self.help()
return
self.init(database = True, write = False) self.init(database = True, write = False)
for pkg in self.args: if self.args:
pkgs = self.args
else:
ctx.ui.info(_('Checking all installed packages'))
pkgs = ctx.installdb.list_installed()
for pkg in pkgs:
if ctx.installdb.is_installed(pkg): if ctx.installdb.is_installed(pkg):
pisi.api.check(pkg) corrupt = pisi.api.check(pkg)
if corrupt:
ctx.ui.info(_('Package %s is corrupt.') % pkg)
else: else:
ctx.ui.info(_('Package %s not installed') % pkg) ctx.ui.info(_('Package %s not installed') % pkg)
self.finalize() self.finalize()