[pygccxml-commit] SF.net SVN: pygccxml: [1023] installers
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-04-29 06:38:03
|
Revision: 1023 http://svn.sourceforge.net/pygccxml/?rev=1023&view=rev Author: roman_yakovenko Date: 2007-04-28 23:37:59 -0700 (Sat, 28 Apr 2007) Log Message: ----------- few changes to create installer automatically Modified Paths: -------------- installers/config.py installers/install_gccxml.py installers/utils.py Modified: installers/config.py =================================================================== --- installers/config.py 2007-04-25 17:14:13 UTC (rev 1022) +++ installers/config.py 2007-04-29 06:37:59 UTC (rev 1023) @@ -1,3 +1,4 @@ +import os import sys import tempfile @@ -6,6 +7,18 @@ #temporal directory to extract archives and create executables working_dir = tempfile.gettempdir() +class setup_builder: + #final\destination directory for ditributable package + dist_dir = os.path.split( sys.argv[0] )[0] + unzip = None + + gccxml_cvs_dir = None + cmake_windows = 'cmake-2.4.6-win32-x86.zip' + cmake_linux = 'cmake-2.4.6-Linux-i386.tar.gz' + if 'win32' == sys.platform: + gccxml_cvs_dir = r'D:\dev\gccxml_cvs\gccxml' + unzip = 'unzip -d $target_dir $archive' #command line to run in order to unzip the file + class archives: cmake = 'cmake-%s.tar' % sys.platform gccxml = 'gccxml-cvs.tar' @@ -32,4 +45,3 @@ compiler="gcc" generator = 'Unix Makefiles' native_build = 'make' - Modified: installers/install_gccxml.py =================================================================== --- installers/install_gccxml.py 2007-04-25 17:14:13 UTC (rev 1022) +++ installers/install_gccxml.py 2007-04-29 06:37:59 UTC (rev 1023) @@ -5,8 +5,12 @@ import utils import config import shutil +import urllib +import string +import tarfile import tempfile + def build_gccxml(working_dir): utils.logger.info( 'create environment for building GCC_XML' ) gccxml_src_dir = os.path.join( working_dir, os.path.splitext( config.archives.gccxml )[0] ) @@ -75,7 +79,7 @@ shutil.rmtree( build_dir, True ) utils.logger.info( 'removing GCC_XML build directory - done' ) -if __name__ == "__main__": +def install(): if 2 == len(sys.argv): config.gccxml_install_dir = sys.argv[1] else: @@ -107,3 +111,68 @@ utils.logger.info( 'GCC_XML was successfully installed in "%s" directory' % config.gccxml_install_dir ) utils.logger.info( 'Uninstall instruction - delete GCC_XML install directory.' ) +def create_dist_package(): + working_dir = os.path.abspath( os.path.dirname(sys.modules[__name__].__file__) ) + try: + gccxml_cvs_dir_name = os.path.splitext( config.archives.gccxml )[0] + gccxml_cvs_dir_path = os.path.join( working_dir, gccxml_cvs_dir_name ) + utils.logger.info( 'coping gccxml directory ' ) + shutil.copytree( config.setup_builder.gccxml_cvs_dir, gccxml_cvs_dir_path ) + utils.logger.info( 'coping gccxml directory - done' ) + #TODO: remove cvs files from the directory + utils.logger.info( 'archiving gccxml "%s" directory ' % gccxml_cvs_dir_path ) + tar = tarfile.open( os.path.join( working_dir, config.archives.gccxml ), "w" ) + tar.add( gccxml_cvs_dir_path, gccxml_cvs_dir_name ) + tar.close() + utils.logger.info( 'archiving gccxml "%s" directory - done' % gccxml_cvs_dir_path ) + + if 'win32' == sys.platform: + cmake_zip_file = os.path.join( working_dir, config.setup_builder.cmake_windows ) + + utils.logger.info( 'downloading "%s"' % config.setup_builder.cmake_windows ) + urllib.urlretrieve( 'http://www.cmake.org/files/v2.4/' + config.setup_builder.cmake_windows + , cmake_zip_file ) + utils.logger.info( 'downloading "%s" - done' % config.setup_builder.cmake_windows ) + + cmake_dir = os.path.splitext( cmake_zip_file )[0] + + utils.logger.info( 'unzipping "%s" file' % config.setup_builder.cmake_windows ) + unzip_cmd = string.Template( config.setup_builder.unzip ) + utils.execute( unzip_cmd.substitute( archive='"%s"' % cmake_zip_file + , target_dir='"%s"' % working_dir ) ) + utils.logger.info( 'unzipping "%s" file - done' % config.setup_builder.cmake_windows ) + + cmake_archive_dir = os.path.join( working_dir, os.path.splitext( config.archives.cmake )[0] ) + + shutil.move( cmake_dir, cmake_archive_dir ) + utils.logger.info( 'archiving cmake "%s" directory ' % cmake_archive_dir ) + tar = tarfile.open( os.path.join( working_dir, config.archives.cmake ), "w" ) + tar.add( cmake_archive_dir, config.archives.cmake ) + tar.close() + utils.logger.info( 'archiving cmake "%s" directory - done' % cmake_archive_dir ) + + #clean after yourself + os.remove( cmake_zip_file ) + utils.rmtree_safe( cmake_dir ) + utils.rmtree_safe( cmake_archive_dir ) + utils.rmtree_safe( gccxml_cvs_dir_path ) + + else: #linux + cmake_linux = os.path.join( working_dir, config.setup_builder.cmake_linux ) + if not os.path.exists( cmake_linux ): + utils.logger.info( 'downloading "%s"' % config.setup_builder.cmake_linux ) + urllib.urlretrieve( 'http://www.cmake.org/files/v2.4/' + config.setup_builder.cmake_linux + , cmake_linux ) + utils.logger.info( 'downloading "%s" - done' % config.setup_builder.cmake_linux ) + utils.logger.info( 'unzipping "%s" file' % config.setup_builder.cmake_linux ) + unzip_cmd = string.Template( config.setup_builder.unzip ) + utils.execute( unzip_cmd.substitute( archive='"%s"' % cmake_linux + , target_dir='"%s"' % working_dir ) ) + utils.logger.info( 'unzipping "%s" file - done' % config.setup_builder.cmake_linux ) + finally: + pass + #shutil.rmtree( working_dir ) + +if __name__ == "__main__": + #install() + create_dist_package() Modified: installers/utils.py =================================================================== --- installers/utils.py 2007-04-25 17:14:13 UTC (rev 1022) +++ installers/utils.py 2007-04-29 06:37:59 UTC (rev 1023) @@ -1,6 +1,8 @@ import os import sys +import shutil import tarfile +import zipfile import logging import Tkinter import tkFileDialog @@ -9,7 +11,7 @@ def __create_logger(): logger = logging.getLogger('install') handler = logging.StreamHandler(sys.stdout) - handler.setFormatter( logging.Formatter( os.linesep + '%(message)s' ) ) + handler.setFormatter( logging.Formatter( '%(message)s' ) ) logger.addHandler(handler) logger.setLevel(logging.INFO) return logger @@ -59,4 +61,12 @@ logger.info( 'executing command: %s - done(%d)' %( cmd, exit_status ) ) return exit_status + +def rmtree_safe( dir_ ): + if not os.path.exists( dir_ ): + return + logger.info( 'removing "%s" directory ' % dir_ ) + shutil.rmtree( dir_ ) + logger.info( 'removing "%s" directory - done' % dir_ ) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |