diff --git a/server/eit/commands/__init__.py b/server/eit/commands/__init__.py index ef416f5dd..94fe41c99 100644 --- a/server/eit/commands/__init__.py +++ b/server/eit/commands/__init__.py @@ -9,7 +9,9 @@ B{Entropy Infrastructure Toolkit}. """ +# TODO: use automatic loader from eit.commands.help import EitHelp from eit.commands.status import EitStatus from eit.commands.commit import EitCommit from eit.commands.add import EitAdd +from eit.commands.repack import EitRepack diff --git a/server/eit/commands/repack.py b/server/eit/commands/repack.py new file mode 100644 index 000000000..d612930d5 --- /dev/null +++ b/server/eit/commands/repack.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +""" + + @author: Fabio Erculiani + @contact: lxnay@sabayon.org + @copyright: Fabio Erculiani + @license: GPL-2 + + B{Entropy Infrastructure Toolkit}. + +""" +import sys +import os +import argparse + +from entropy.const import etpConst +from entropy.i18n import _ +from entropy.exceptions import PermissionDenied +from entropy.output import print_error, darkgreen, \ + teal, brown, darkred, bold, purple, blue + +from text_tools import print_table + +import entropy.tools + +from eit.commands.descriptor import EitCommandDescriptor +from eit.commands.commit import EitCommit + + +class EitRepack(EitCommit): + """ + Main Eit repack command. + """ + + NAME = "repack" + ALIASES = ["rp"] + + def parse(self): + """ Overridden from EitCommit """ + descriptor = EitCommandDescriptor.obtain_descriptor( + EitRepack.NAME) + parser = argparse.ArgumentParser( + description=descriptor.get_description(), + formatter_class=argparse.RawDescriptionHelpFormatter, + prog="%s %s" % (sys.argv[0], EitRepack.NAME)) + + parser.add_argument("packages", nargs='+', metavar="", + help=_("package names")) + parser.add_argument("--in", metavar="", + help=_("repack to given repository"), + default=None, dest="into") + + try: + nsargs = parser.parse_args(self._args) + except IOError as err: + return parser.print_help, [] + + # setup atoms variable before spawning commit + self._packages = nsargs.packages[:] + self._repackage = self._packages + return self._commit, [nsargs.into] + +EitCommandDescriptor.register( + EitCommandDescriptor( + EitRepack, + EitRepack.NAME, + _('rebuild packages in repository')) + )