From 3981d34159fe593fb920b5d39ccfd62469847978 Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Mon, 22 Mar 2010 11:58:35 +0300 Subject: [PATCH] Fix setup.py --- setup.py | 96 +++++++++++++++----------------------------------------- 1 file changed, 26 insertions(+), 70 deletions(-) diff --git a/setup.py b/setup.py index c411315..1738c39 100755 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ # setup.py --- Setup script for calculate-client -# Copyright 2008-2010 Mir Calculate Ltd. http://www.calculate-linux.org +#Copyright 2008 Calculate Pack, http://www.calculate-linux.org # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +17,7 @@ # limitations under the License. import os -import glob -import sys -import re +import stat from distutils.core import setup, Extension from distutils.command.install_data import install_data @@ -36,74 +34,33 @@ data_dirs_local = ['client-profiles', 'profiles'] share_calculate_dir = "/usr/share/calculate/" data_dirs_share = ['i18n'] -data_files += var_data_files -def scanDirs(profilesDirs): - """Recursive scanning directories""" +def __scanDir(scanDir, prefix, dirData, flagDir=False): + """Scan directory""" + files = [] dirs = [] - class dirProf: - def __init__(self): - self.baseDir = False - self.dirs = [] - self.files = [] - def getFilesDir(dirP, dirname,names): - if '/.svn' in dirname: - return False - for nameFile in names: - absNameFile = dirname + "/" + nameFile - if '/.svn' in absNameFile: - continue - if os.path.isfile(absNameFile): - dirP.files.append(absNameFile) - elif os.path.isdir(absNameFile): - dirP.dirs.append(absNameFile) - return True - for profileDir in profilesDirs: - if profileDir: - dirP = dirProf() - dirP.baseDir = profileDir - dirs.append(dirP) - os.path.walk(profileDir,getFilesDir, dirP) - return dirs + if flagDir or stat.S_ISDIR(os.stat(scanDir)[stat.ST_MODE]): + for fileOrDir in os.listdir(scanDir): + absPath = os.path.join(scanDir,fileOrDir) + statInfo = os.stat(absPath)[stat.ST_MODE] + if stat.S_ISREG(statInfo): + files.append(absPath) + elif stat.S_ISDIR(statInfo): + dirs.append(absPath) + if prefix: + scanDir = os.path.join(prefix,scanDir) + dirData.append((scanDir, files)) + for sDir in dirs: + __scanDir(sDir, prefix, dirData, True) + return dirData -def create_data_files (data_dirs, prefix=""): - test1_files = [] +def create_data_files(data_dirs, prefix=""): + """Create data_files""" data_files = [] - dirs = scanDirs(data_dirs) - i = 0 - for obj in dirs: - if not obj.dirs: - obj.dirs.append(data_dirs[i]) - i += 1 - for obj in dirs: - files_obj_dirs = [] - for dir_name in obj.dirs: - for file_name in obj.files: - if re.match(dir_name,file_name): - files_obj_dirs.append(dir_name) - break - for files_obj_dir in files_obj_dirs: - obj.dirs.remove(files_obj_dir) - files_obj_dirs.sort(lambda x, y: cmp(len(y), len(x))) - for dir_name in files_obj_dirs: - wr_sp = (prefix+dir_name,[]) - file_dirs = [] - for file_name in obj.files: - if re.match(dir_name,file_name): - file_dirs.append(file_name) - for file_name in file_dirs: - wr_sp[1].append(file_name) - obj.files.remove(file_name) - test1_files.append(wr_sp) - test1_files.reverse() - test2_files = [] - for obj in dirs: - for dir_name in obj.dirs: - wr_sp = (prefix+dir_name,[]) - test2_files.append(wr_sp) - - test1_files = test2_files + test1_files - return test1_files + for data_dir in data_dirs: + data = [] + data_files += __scanDir(data_dir, prefix, data) + return data_files data_files += create_data_files (data_dirs_local) data_files += create_data_files (data_dirs_share, share_calculate_dir) @@ -156,8 +113,7 @@ setup( data_files = data_files, scripts=["./scripts/cl-createhome", "./scripts/cl-client", - "./scripts/cl-sync", - "./scripts/cl-passwd"], + "./scripts/cl-sync"], ext_modules = [module1], cmdclass={'install_data': cl_install_data}, )