sbsv2/raptor/python/sbs_dist.py
changeset 3 e1eecf4d390d
parent 0 044383f39525
--- a/sbsv2/raptor/python/sbs_dist.py	Wed Oct 28 14:39:48 2009 +0000
+++ b/sbsv2/raptor/python/sbs_dist.py	Mon Nov 16 09:46:46 2009 +0000
@@ -1,139 +1,139 @@
-#
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-# raptor linux distribution creation module
-# This module allow to crate raptor linux distribution archive (tar.gz) e.g. sbs_linux_dist.tar.gz
-# Script extect the following command-line parameters:
-# 1. Archive name
-# 2. List of files/directories to include
-# By default windows specific and source files are excluded.
-# example including bin and python subdir:
-# sbs_dist.py sbs_linux_dist.tar.gz bin python
-#
-
-import os
-import re
-import tarfile
-import sys
-import dos2unix
-
-#------------------------------------------------------------------------------
-# Create tar.gz archive including given files (fileName list and tarinfo list)
-#------------------------------------------------------------------------------
-def createTarGZ(tarName, fileList):
-    tar = tarfile.open(tarName, "w|gz")
-    for name in fileList:
-        tar.add(name)
-    return tar
-
-#------------------------------------------------------------------------------
-# Lists files in each of given directories
-#------------------------------------------------------------------------------
-def listFilesInDirs(paths):
-    fileList = []
-    for path in paths:
-        fileList.extend(listFiles(path))
-    return fileList
-
-#------------------------------------------------------------------------------
-# Lists files in given directory
-#------------------------------------------------------------------------------
-def listFiles(path):
-    fileList = []
-    for root, dirs, files in os.walk(path):
-        for index in range(len(files)):
-            fileList.append(root + "/" + files[index])
-    return fileList
-
-#------------------------------------------------------------------------------
-# Excludes files matching "pattern" from given files list
-#------------------------------------------------------------------------------
-def excludeFiles(fileList, pattern):
-    filteredFileList = []
-    regExp = re.compile(pattern)
-    for fileName in fileList:
-        if not(regExp.match(fileName)):
-           filteredFileList.append(fileName)
-    return filteredFileList
-
-
-#------------------------------------------------------------------------------
-# Groups given paths as files or directories
-#------------------------------------------------------------------------------
-def groupFilesAndDirs(filesAndDirs):
-    files = []
-    dirs = []
-    for name in filesAndDirs:
-        if os.path.isdir(name):
-             dirs.append(name)
-        else:
-             if os.path.isfile(name):
-                files.append(name)
-             else:
-                  print "Warning: Neither a file nor a directory! Ignoring parameter - " + name
-    return (files,dirs)
-
-#------------------------------------------------------------------------------
-# Prepares regular expression to exclude unnecessary files
-#------------------------------------------------------------------------------
-def prepareExcludedFilesRegExp():
-    pathPrefixRegExp = ".*[\\\/]"
-    filesRegExp = "((sbs)|(.*\.bat)|(.*\.pyc)|(.*\.cmd)|(.*\.exe)|(.*\.dll)|(sbs_dist.py)"
-    filesRegExp = filesRegExp + "|(dos2unix.py)|(raptor_py2exe_setup.py)|(make)|(bash)|(bashbug))+"
-    return "^" + pathPrefixRegExp + filesRegExp + "$"
-
-#------------------------------------------------------------------------------
-# Includes all files in fileList in given tar with altered executable permision (+X) for all
-#------------------------------------------------------------------------------
-def includeAsExecutable(tar, fileList):
-    for f in fileList:
-        tarinfo = tar.gettarinfo(f)
-        # OR with 73 (001 001 001) - +X for all
-        tarinfo.mode = tarinfo.mode | 73
-        tar.addfile(tarinfo,file(f, "rb"))
-
-
-#------------------------------------------------------------------------------
-# Validate script parameters
-#------------------------------------------------------------------------------
-def validateParameters(tarFileName, filesToInclude):
-    if not(len(tarFileName) > 0):
-       print "Error: No archive name given."
-       sys.exit()
-    if not(len(filesToInclude) > 0):
-       print "Error: No files/directories names to include in archive given."
-       sys.exit()
-
-
-tarFileName = sys.argv[1]
-# files and directories
-filesAndDirsToInclude = sys.argv[2:]
-
-validateParameters(tarFileName, filesAndDirsToInclude)
-
-(filesToInclude,dirsToInclude) = groupFilesAndDirs(filesAndDirsToInclude)
-
-fileList = listFilesInDirs(dirsToInclude)
-fileList.extend(filesToInclude)
-
-filteredFileList = excludeFiles(fileList, prepareExcludedFilesRegExp())
-
-dos2unix.dos2unix("bin/sbs")
-
-tar = createTarGZ(tarFileName, filteredFileList)
-fileToBeExecutableList = ["bin/sbs", "linux-i386/bin/make", "linux-i386/bin/bash", "linux-i386/bin/bashbug",
-			  "bin/sbs_descramble"]
-includeAsExecutable(tar, fileToBeExecutableList)
-tar.close()
-
+#
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+# raptor linux distribution creation module
+# This module allow to crate raptor linux distribution archive (tar.gz) e.g. sbs_linux_dist.tar.gz
+# Script extect the following command-line parameters:
+# 1. Archive name
+# 2. List of files/directories to include
+# By default windows specific and source files are excluded.
+# example including bin and python subdir:
+# sbs_dist.py sbs_linux_dist.tar.gz bin python
+#
+
+import os
+import re
+import tarfile
+import sys
+import dos2unix
+
+#------------------------------------------------------------------------------
+# Create tar.gz archive including given files (fileName list and tarinfo list)
+#------------------------------------------------------------------------------
+def createTarGZ(tarName, fileList):
+    tar = tarfile.open(tarName, "w|gz")
+    for name in fileList:
+        tar.add(name)
+    return tar
+
+#------------------------------------------------------------------------------
+# Lists files in each of given directories
+#------------------------------------------------------------------------------
+def listFilesInDirs(paths):
+    fileList = []
+    for path in paths:
+        fileList.extend(listFiles(path))
+    return fileList
+
+#------------------------------------------------------------------------------
+# Lists files in given directory
+#------------------------------------------------------------------------------
+def listFiles(path):
+    fileList = []
+    for root, dirs, files in os.walk(path):
+        for index in range(len(files)):
+            fileList.append(root + "/" + files[index])
+    return fileList
+
+#------------------------------------------------------------------------------
+# Excludes files matching "pattern" from given files list
+#------------------------------------------------------------------------------
+def excludeFiles(fileList, pattern):
+    filteredFileList = []
+    regExp = re.compile(pattern)
+    for fileName in fileList:
+        if not(regExp.match(fileName)):
+           filteredFileList.append(fileName)
+    return filteredFileList
+
+
+#------------------------------------------------------------------------------
+# Groups given paths as files or directories
+#------------------------------------------------------------------------------
+def groupFilesAndDirs(filesAndDirs):
+    files = []
+    dirs = []
+    for name in filesAndDirs:
+        if os.path.isdir(name):
+             dirs.append(name)
+        else:
+             if os.path.isfile(name):
+                files.append(name)
+             else:
+                  print "Warning: Neither a file nor a directory! Ignoring parameter - " + name
+    return (files,dirs)
+
+#------------------------------------------------------------------------------
+# Prepares regular expression to exclude unnecessary files
+#------------------------------------------------------------------------------
+def prepareExcludedFilesRegExp():
+    pathPrefixRegExp = ".*[\\\/]"
+    filesRegExp = "((sbs)|(.*\.bat)|(.*\.pyc)|(.*\.cmd)|(.*\.exe)|(.*\.dll)|(sbs_dist.py)"
+    filesRegExp = filesRegExp + "|(dos2unix.py)|(raptor_py2exe_setup.py)|(make)|(bash)|(bashbug))+"
+    return "^" + pathPrefixRegExp + filesRegExp + "$"
+
+#------------------------------------------------------------------------------
+# Includes all files in fileList in given tar with altered executable permision (+X) for all
+#------------------------------------------------------------------------------
+def includeAsExecutable(tar, fileList):
+    for f in fileList:
+        tarinfo = tar.gettarinfo(f)
+        # OR with 73 (001 001 001) - +X for all
+        tarinfo.mode = tarinfo.mode | 73
+        tar.addfile(tarinfo,file(f, "rb"))
+
+
+#------------------------------------------------------------------------------
+# Validate script parameters
+#------------------------------------------------------------------------------
+def validateParameters(tarFileName, filesToInclude):
+    if not(len(tarFileName) > 0):
+       print "Error: No archive name given."
+       sys.exit()
+    if not(len(filesToInclude) > 0):
+       print "Error: No files/directories names to include in archive given."
+       sys.exit()
+
+
+tarFileName = sys.argv[1]
+# files and directories
+filesAndDirsToInclude = sys.argv[2:]
+
+validateParameters(tarFileName, filesAndDirsToInclude)
+
+(filesToInclude,dirsToInclude) = groupFilesAndDirs(filesAndDirsToInclude)
+
+fileList = listFilesInDirs(dirsToInclude)
+fileList.extend(filesToInclude)
+
+filteredFileList = excludeFiles(fileList, prepareExcludedFilesRegExp())
+
+dos2unix.dos2unix("bin/sbs")
+
+tar = createTarGZ(tarFileName, filteredFileList)
+fileToBeExecutableList = ["bin/sbs", "linux-i386/bin/make", "linux-i386/bin/bash", "linux-i386/bin/bashbug",
+			  "bin/sbs_descramble"]
+includeAsExecutable(tar, fileToBeExecutableList)
+tar.close()
+