Add forgotten file
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user