diff -r b61c19d4168d -r 22ecbfc20eb4 buildframework/helium/tools/preparation/freedisk.py --- a/buildframework/helium/tools/preparation/freedisk.py Wed Feb 17 16:10:19 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -#============================================================================ -#Name : freedisk.py -#Part of : Helium - -#Copyright (c) 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: -#=============================================================================== - -""" Checks free space on the disk before the build starts. - -The script is being called from the preparation.ant.xml file - -""" - -import getopt, sys - - -help_string = """ - -h or --help : Displays help - - -d or --drive : Requires a drive letter to be checked. - : E.g. -d C: (case insensitive; ':' is optional) - - -s or --space : Required space to compare with the drive for the free space" - : E.g. -s 2658 (an integer value in MB) -""" - - - -def print_space_report(drive, space_required): - """ - compares the required space with current free space on the provided drive - """ - try: - if sys.platform == "win32": - import win32file - free_bytes = win32file.GetDiskFreeSpaceEx(drive)[0] - else: - import os - import statvfs - # pylint: disable-msg=E1101 - stats = os.statvfs(drive) - free_bytes = stats[statvfs.F_BSIZE] * stats[statvfs.F_BAVAIL] - - except Exception, e: - print "ERROR: Either specified drive doesn't exist or an unknown error" - print str(e) - print help_string - sys.exit(-2) - - free_space = free_bytes / (1024 * 1024) - - - print "drive:", drive - print "Required Space:", space_required - print "Free Space:", free_space - - if space_required < free_space: - print "Enough free space" - sys.exit(0) - else: - print "Not enough free space, exiting" - sys.exit(-1) - - -def main(): - """ - Gets and parse options and verifies the option values - """ - try: - opts = getopt.getopt(sys.argv[1:], "hs:d:", \ - ["space=", "drive=", "help"])[0] - except getopt.GetoptError: - # print help information and exit: - print "ERROR: Couldn't parse the command line parameters." - print help_string - sys.exit(2) - - drive = None - required_space = None - - for opt, attr in opts: - - if opt in ("-s", "--space"): - required_space = int(attr) - - if opt in ("-d", "--drive"): - drive = attr - - if opt in ("-h", "--help"): - print help_string - sys.exit() - - if required_space == None and drive == None: - print "ERROR: No parameters are defined" - print help_string - sys.exit (-3) - - if required_space == None: - print "ERROR: Required Disk Space parameter is not defined to" \ - "check space on the disk" - print help_string - sys.exit (-3) - - if drive == None: - print "ERROR: Drive parameter is missing" - print help_string - sys.exit (-3) - else: - if sys.platform == "win32": - if not ":" in drive: - drive = drive + ":" - - print_space_report(drive, required_space) - - - - -if __name__ == '__main__': - sys.exit(main())