From 2a838e7a3115e021bef0741de0fec6750a86984a Mon Sep 17 00:00:00 2001 From: topilski Date: Mon, 5 Jun 2017 22:06:42 +0300 Subject: [PATCH] force symlink --- base/system_info.py | 7 +++---- base/utils.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/base/system_info.py b/base/system_info.py index 7937c98..b023fa7 100644 --- a/base/system_info.py +++ b/base/system_info.py @@ -1,7 +1,6 @@ #!/usr/bin/env python import platform -import re import subprocess from abc import ABCMeta, abstractmethod @@ -116,9 +115,9 @@ class LinuxPlatforms(SupportedPlatforms): def __init__(self): SupportedPlatforms.__init__(self, 'linux', [Architecture('x86_64', 64, '/usr/local'), Architecture('i386', 32, '/usr/local'), - Architecture('armv7l', 32, '/usr/local'), - Architecture('armv6l', 32, '/usr/local')], - ['DEB', 'RPM', 'TGZ']) + Architecture('armv7l', 32, '/usr/local'), + Architecture('armv6l', 32, '/usr/local')], + ['DEB', 'RPM', 'TGZ']) def make_platform_by_arch(self, arch, package_types) -> Platform: distr = linux_get_dist() diff --git a/base/utils.py b/base/utils.py index 05dd8ec..4d82263 100644 --- a/base/utils.py +++ b/base/utils.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import errno import os import re import shutil @@ -136,3 +137,14 @@ def git_clone(url, current_dir): common_git_clone_init_line = ['git', 'submodule', 'update', '--init', '--recursive'] subprocess.call(common_git_clone_init_line) return os.path.join(current_dir, cloned_dir) + + +def symlink_force(target, link_name): + try: + os.symlink(target, link_name) + except OSError as e: + if e.errno == errno.EEXIST: + os.remove(link_name) + os.symlink(target, link_name) + else: + raise e