From e2cc2530fc6d54ebc975c01a4ff887ce12f0a736 Mon Sep 17 00:00:00 2001 From: Pavel Aharoni Date: Wed, 29 Mar 2017 13:35:45 +0300 Subject: [SDC-6] sdc-distribution-client 1707 rebasing Change-Id: I322a05fd79beb6ba4fee4d32afffecf531b86e98 Signed-off-by: Pavel Aharoni --- .../Lib/site-packages/setuptools/command/rotate.py | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 jython-tosca-parser/src/main/resources/Lib/site-packages/setuptools/command/rotate.py (limited to 'jython-tosca-parser/src/main/resources/Lib/site-packages/setuptools/command/rotate.py') diff --git a/jython-tosca-parser/src/main/resources/Lib/site-packages/setuptools/command/rotate.py b/jython-tosca-parser/src/main/resources/Lib/site-packages/setuptools/command/rotate.py new file mode 100644 index 0000000..1b07362 --- /dev/null +++ b/jython-tosca-parser/src/main/resources/Lib/site-packages/setuptools/command/rotate.py @@ -0,0 +1,61 @@ +from distutils.util import convert_path +from distutils import log +from distutils.errors import DistutilsOptionError +import os + +from setuptools import Command +from setuptools.compat import basestring + + +class rotate(Command): + """Delete older distributions""" + + description = "delete older distributions, keeping N newest files" + user_options = [ + ('match=', 'm', "patterns to match (required)"), + ('dist-dir=', 'd', "directory where the distributions are"), + ('keep=', 'k', "number of matching distributions to keep"), + ] + + boolean_options = [] + + def initialize_options(self): + self.match = None + self.dist_dir = None + self.keep = None + + def finalize_options(self): + if self.match is None: + raise DistutilsOptionError( + "Must specify one or more (comma-separated) match patterns " + "(e.g. '.zip' or '.egg')" + ) + if self.keep is None: + raise DistutilsOptionError("Must specify number of files to keep") + try: + self.keep = int(self.keep) + except ValueError: + raise DistutilsOptionError("--keep must be an integer") + if isinstance(self.match, basestring): + self.match = [ + convert_path(p.strip()) for p in self.match.split(',') + ] + self.set_undefined_options('bdist', ('dist_dir', 'dist_dir')) + + def run(self): + self.run_command("egg_info") + from glob import glob + + for pattern in self.match: + pattern = self.distribution.get_name() + '*' + pattern + files = glob(os.path.join(self.dist_dir, pattern)) + files = [(os.path.getmtime(f), f) for f in files] + files.sort() + files.reverse() + + log.info("%d file(s) matching %s", len(files), pattern) + files = files[self.keep:] + for (t, f) in files: + log.info("Deleting %s", f) + if not self.dry_run: + os.unlink(f) -- cgit 1.2.3-korg