From e4750fc965ba7eefae2201de35cc3d8cd61abf22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jastrz=C4=99bski?= Date: Wed, 22 Jan 2014 21:02:06 +0100 Subject: [PATCH] OSX: Fixed 7zip parsing --- kcc/cbxarchive.py | 9 ++++++++- setup.sh | 0 2 files changed, 8 insertions(+), 1 deletion(-) mode change 100644 => 100755 setup.sh diff --git a/kcc/cbxarchive.py b/kcc/cbxarchive.py index 5927226..0050704 100644 --- a/kcc/cbxarchive.py +++ b/kcc/cbxarchive.py @@ -19,11 +19,12 @@ __license__ = 'ISC' __copyright__ = '2012-2013, Ciro Mattia Gonano , Pawel Jastrzebski ' __docformat__ = 'restructuredtext en' +import sys import os import zipfile from subprocess import STDOUT, PIPE from psutil import Popen -from shutil import move +from shutil import move, copy from . import rarfile @@ -73,6 +74,10 @@ class CBxArchive: cbrFile.extractall(targetdir, filelist) def extractCB7(self, targetdir): + # Workaround for some wide UTF-8 + Popen abnormalities + if sys.platform.startswith('darwin'): + copy(self.origFileName, os.path.join(os.path.dirname(self.origFileName), 'TMP_KCC_TMP')) + self.origFileName = os.path.join(os.path.dirname(self.origFileName), 'TMP_KCC_TMP') output = Popen('7za x "' + self.origFileName + '" -xr!__MACOSX -xr!.DS_Store -xr!thumbs.db -o"' + targetdir + '"', stdout=PIPE, stderr=STDOUT, shell=True) extracted = False @@ -81,6 +86,8 @@ class CBxArchive: extracted = True if not extracted: raise OSError + if sys.platform.startswith('darwin'): + os.remove(self.origFileName) def extract(self, targetdir): if self.compressor == 'rar': diff --git a/setup.sh b/setup.sh old mode 100644 new mode 100755