From 6b40111dfb3211aeeaa948f89ad3f34fa81fee5d Mon Sep 17 00:00:00 2001 From: Georges Martin Date: Thu, 5 Dec 2019 04:10:30 +0100 Subject: [PATCH] Add package overwrite option --- upt_macports/upt_macports.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/upt_macports/upt_macports.py b/upt_macports/upt_macports.py index 0945c47..ed644d5 100755 --- a/upt_macports/upt_macports.py +++ b/upt_macports/upt_macports.py @@ -13,7 +13,7 @@ class MacPortsPackage(object): def __init__(self): self.logger = logging.getLogger('upt') - def create_package(self, upt_pkg, output): + def create_package(self, upt_pkg, output, overwrite=False): self.upt_pkg = upt_pkg self.logger.info(f'Creating MacPorts package for {self.upt_pkg.name}') portfile_content = self._render_makefile_template() @@ -21,7 +21,7 @@ def create_package(self, upt_pkg, output): print(portfile_content) else: self._create_output_directories(upt_pkg, output) - self._create_portfile(portfile_content) + self._create_portfile(portfile_content, overwrite) def _create_output_directories(self, upt_pkg, output_dir): """Creates the directory layout required""" @@ -35,10 +35,11 @@ def _create_output_directories(self, upt_pkg, output_dir): except PermissionError: sys.exit(f'Cannot create {self.output_dir}: permission denied.') - def _create_portfile(self, portfile_content): + def _create_portfile(self, portfile_content, overwrite=False): self.logger.info('Creating the Portfile') try: - with open(os.path.join(self.output_dir, 'Portfile'), 'x', + mode = 'w' if overwrite else 'x' + with open(os.path.join(self.output_dir, 'Portfile'), mode, encoding='utf-8') as f: f.write(portfile_content) except FileExistsError: @@ -217,14 +218,14 @@ def __init__(self): 'rubygems': MacPortsRubyPackage, } - def create_package(self, upt_pkg, output=None): + def create_package(self, upt_pkg, output=None, overwrite=False): try: self.frontend = upt_pkg.frontend pkg_cls = self.pkg_classes[upt_pkg.frontend] except KeyError: raise upt.UnhandledFrontendError(self.name, upt_pkg.frontend) packager = pkg_cls() - packager.create_package(upt_pkg, output) + packager.create_package(upt_pkg, output, overwrite) def package_versions(self, name): try: