From 7d2bd0b7c58908d60146f1884d258e2580851d95 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Thu, 6 Jan 2022 18:16:02 -0800 Subject: [PATCH] Copy wakatime-cli when symlink fails --- WakaTime.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/WakaTime.py b/WakaTime.py index a51175e..0462ff4 100644 --- a/WakaTime.py +++ b/WakaTime.py @@ -908,22 +908,24 @@ def download(url, filePath): raise +def is_symlink(path): + try: + return os.is_symlink(path) + except: + return False + + def createSymlink(): + link = os.path.join(RESOURCES_FOLDER, 'wakatime-cli') if is_win: - link = os.path.join(RESOURCES_FOLDER, 'wakatime-cli.exe') - if os.path.exists(link): - try: - os.remove(link) - except: - log(traceback.format_exc()) + link = link + '.exe' + elif os.path.exists(link) and is_symlink(link): + return # don't re-create symlink on Unix-like platforms + + try: + os.symlink(getCliLocation(), link) + except: try: shutil.copy2(getCliLocation(), link) except: log(traceback.format_exc()) - else: - link = os.path.join(RESOURCES_FOLDER, 'wakatime-cli') - if not os.path.exists(link): - try: - os.symlink(getCliLocation(), link) - except: - pass