Add forgotten file

This commit is contained in:
Faik Uygur
2009-01-19 06:08:01 +00:00
parent c3e32603cb
commit acb11ab50c
+93
View File
@@ -0,0 +1,93 @@
# -*- coding:utf-8 -*-
#
# Copyright (C) 2009, TUBITAK/UEKAE
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Please read the COPYING file.
#
import optparse
import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext
import pisi.cli.command as command
import pisi.context as ctx
import pisi.util as util
import pisi.api
import pisi.db
class ListNewest(command.Command):
"""List newest packages in the repositories
Usage: list-newest [ <repo1> <repo2> ... repon ]
Gives a list of PiSi newly published packages in the specified
repositories. If no repository is specified, we list the new
packages from all repositories.
"""
__metaclass__ = command.autocommand
def __init__(self, args):
super(ListNewest, self).__init__(args)
self.componentdb = pisi.db.componentdb.ComponentDB()
self.packagedb = pisi.db.packagedb.PackageDB()
name = ("list-newest", "ln")
def options(self):
group = optparse.OptionGroup(self.parser, _("list-newest options"))
group.add_option("-s", "--since", action="store",
default=None, help=_("List new packages added to repository after this given date formatted as yyyy-mm-dd"))
group.add_option("-l", "--last", action="store",
default=None, help=_("List new packages added to repository after last nth previous repository update"))
self.parser.add_option_group(group)
def run(self):
self.init(database = True, write = False)
if self.args:
for arg in self.args:
self.print_packages(arg)
else:
# print for all repos
for repo in pisi.api.list_repos():
self.print_packages(repo)
def print_packages(self, repo):
if ctx.config.get_option('since'):
since = ctx.config.get_option('since')
elif ctx.config.get_option('last'):
since = pisi.db.historydb.HistoryDB().get_last_repo_update(int(ctx.config.get_option('last')))
else:
since = None
l = pisi.api.list_newest(repo, since)
if not l:
return
if since:
ctx.ui.info(_("Packages added to %s since %s:\n") % (repo, since))
else:
ctx.ui.info(_("Packages added to %s:") % (repo))
# maxlen is defined dynamically from the longest package name (#9021)
if l:
maxlen = max([len(_p) for _p in l])
l.sort()
for p in l:
package = self.packagedb.get_package(p, repo)
lenp = len(p)
p = p + ' ' * max(0, maxlen - lenp)
ctx.ui.info('%s - %s ' % (p, unicode(package.summary)))
print