def main():
    # Parse options

    parser = optparse.OptionParser()

    steps = ["getsdk", "compile", "unittest", "report", "summary"]
    for s in steps:
        parser.add_option("", "--" + s, action="store_true", default=False)
    parser.add_option(
        "-w",
        "--workarea",
        dest="workarea",
        help="Use given WORKAREA instead of newly checkedout workarea")
    parser.add_option("-b",
                      "--branch",
                      default="trunk",
                      help="Checkout branch BRANCH from svn")
    parser.add_option("-s",
                      "--sdk",
                      default="Symbian\\9.1\\S60_3rd_MR",
                      help="Checkout branch BRANCH from svn")
    parser.add_option("-d",
                      "--builddir",
                      default="jaikuv3",
                      help="Build script directory that is used")
    parser.add_option("-v", "--verbose", action="store_true", default=False)
    parser.add_option("",
                      "--clean",
                      action="store_true",
                      default=False,
                      help="Clean old workareas and output dirs")
    parser.add_option("-t", "--targets", default="winscw thumb")
    (options, args) = parser.parse_args()

    # INPUT (run specific)
    # branch
    jaikubranch = options.branch

    # sdk
    sdkname = os.path.split(options.sdk)[1]
    buildsdk = os.path.join(work_drive, options.sdk)
    freshsdk = os.path.join(source_drive, options.sdk)

    # compilation dir
    compilation_subdir = options.builddir

    # svn
    svn_repository = "svn+ssh://kaksi.org/svn/mobile"
    svnbranch = '/'.join([svn_repository, jaikubranch])

    tstampDt = datetime.datetime.utcnow()
    tstamp = tstampDt.strftime("%Y%m%d_%H%M%S")

    # targets
    targets = options.targets.split()
    for t in targets:
        if not t in jbuild.supportedTargets:
            print "Target %s not supported" % (t)
            sys.exit(1)
    jbuild.targets = targets
    jbuild.verbose = options.verbose

    if options.workarea:
        workarea = options.workarea
        branchname = os.path.split(workarea)[1].split('_')[0]
        buildname = os.path.split(workarea)[1]
    else:
        branchname = jaikubranch.replace('/', '_')
        buildname = "_".join([branchname, sdkname, tstamp])
        workarea = os.path.join(workarea_rootdir, buildname)

    outputdir = os.path.join(output_rootdir, buildname)

    # enable all steps
    stepEnables = [getattr(options, s) for s in steps]
    if not any(stepEnables):
        # enable all
        for s in steps:
            setattr(options, s, True)

    def showinfo(msg):
        if (options.verbose): print msg

    if options.clean:
        showinfo("Cleaning old workareas")
        fileutils.safeRemoveTree(workarea_rootdir)
        showinfo("Cleaning old output dirs")
        fileutils.safeRemoveTree(output_rootdir)

    fileutils.ensurePathExists(output_rootdir)

    if not options.workarea:
        showinfo("Creating output directory")
        os.makedirs(outputdir)

    jbuild.connectLicenseServer(outputdir)

    if not options.workarea:
        showinfo("Checking out workarea")
        #  create workarea for Jaiku source tree
        #  export Jaiku source branch from svn
        fileutils.ensurePathExists(workarea_rootdir)
        jbuild.checkout(svnbranch, workarea, outputdir)

    if options.getsdk:
        showinfo("Removing existing sdk")
        fileutils.safeRemoveTree(buildsdk)
        showinfo("Copying clean sdk")
        shutil.copytree(freshsdk, buildsdk)

    if options.compile:
        showinfo("Compiling all")
        compiledir = os.path.join(workarea, compilation_subdir)
        jbuild.compile_all(buildsdk, compiledir, outputdir)
        showinfo("Copying sis files")
        try:
            jbuild.copysisfiles(compiledir, outputdir)
        except Exception, e:
            print e
import autobuild
import fileutils


import datetime
import optparse
import os
import re

parser = optparse.OptionParser()
parser.add_option("-d", "--days", default="5", 
                      help="Delete directories older than DAYS")
(options, args) = parser.parse_args()

olderThan = datetime.timedelta( int(options.days) )

root = autobuild.workarea_rootdir
dateR = re.compile( '(\d{4})(\d{2})(\d{2})_\d{6}$' )

today = datetime.date.today()

for d in os.listdir( root ):
    m = dateR.search(d)
    if not m: continue

    y,m,day = m.group(1,2,3)
    created = datetime.date( int(y), int(m), int(day) )
    if today - created > olderThan:
        print "Removing " + d
        fileutils.safeRemoveTree( os.path.join(root,d) )
def main():
    # Parse options 

    parser = optparse.OptionParser()
    
    steps = [ "getsdk", "compile", "unittest", "report", "summary" ];
    for s in steps:
        parser.add_option("", "--" + s, action="store_true", default=False)
    parser.add_option("-w", "--workarea", dest="workarea",
                      help="Use given WORKAREA instead of newly checkedout workarea")
    parser.add_option("-b", "--branch", default="trunk",
                      help="Checkout branch BRANCH from svn")
    parser.add_option("-s", "--sdk", default="Symbian\\9.1\\S60_3rd_MR",
                      help="Checkout branch BRANCH from svn")
    parser.add_option("-d", "--builddir", default="jaikuv3",
                      help="Build script directory that is used")    
    parser.add_option("-v", "--verbose", action="store_true", default=False)
    parser.add_option("", "--clean", action="store_true", default=False,
                      help="Clean old workareas and output dirs")
    parser.add_option("-t", "--targets", default="winscw thumb")
    (options, args) = parser.parse_args()


    # INPUT (run specific)
    # branch
    jaikubranch = options.branch

    # sdk 
    sdkname=os.path.split(options.sdk)[1]
    buildsdk = os.path.join( work_drive, options.sdk )
    freshsdk = os.path.join( source_drive, options.sdk )

    # compilation dir
    compilation_subdir = options.builddir
        
    # svn 
    svn_repository = "svn+ssh://kaksi.org/svn/mobile"
    svnbranch = '/'.join( [svn_repository, jaikubranch] ) 

    
    tstampDt = datetime.datetime.utcnow()
    tstamp = tstampDt.strftime( "%Y%m%d_%H%M%S" );

    # targets
    targets = options.targets.split()
    for t in targets:
        if not t in jbuild.supportedTargets:
            print "Target %s not supported" % (t)
            sys.exit(1)
    jbuild.targets = targets
    jbuild.verbose = options.verbose

    
    if options.workarea:
        workarea = options.workarea
        branchname = os.path.split(workarea)[1].split('_')[0]
        buildname = os.path.split(workarea)[1]
    else:
        branchname = jaikubranch.replace('/', '_')
        buildname = "_".join( [branchname, sdkname, tstamp] )
        workarea = os.path.join( workarea_rootdir, buildname )

    outputdir = os.path.join( output_rootdir, buildname )

    # enable all steps
    stepEnables = [ getattr(options, s) for s in steps]    
    if not any(stepEnables):
        # enable all
        for s in steps: setattr(options, s, True)


    def showinfo(msg):
        if ( options.verbose ): print msg
    

    if options.clean:
        showinfo( "Cleaning old workareas" )
        fileutils.safeRemoveTree(workarea_rootdir)
        showinfo( "Cleaning old output dirs" )
        fileutils.safeRemoveTree(output_rootdir)

    fileutils.ensurePathExists(output_rootdir)

    
    if not options.workarea:
        showinfo( "Creating output directory" )
        os.makedirs( outputdir ) 

    jbuild.connectLicenseServer(outputdir)
    

    if not options.workarea:
        showinfo( "Checking out workarea" )
        #  create workarea for Jaiku source tree
        #  export Jaiku source branch from svn
        fileutils.ensurePathExists( workarea_rootdir )    
        jbuild.checkout(svnbranch, workarea, outputdir)
    
    if options.getsdk:
        showinfo( "Removing existing sdk" )
        fileutils.safeRemoveTree( buildsdk )
        showinfo( "Copying clean sdk" )
        shutil.copytree( freshsdk, buildsdk )
               

    if options.compile:
        showinfo( "Compiling all" )
        compiledir = os.path.join( workarea, compilation_subdir )
        jbuild.compile_all( buildsdk, compiledir, outputdir )
        showinfo( "Copying sis files" )
        try:
            jbuild.copysisfiles( compiledir, outputdir )
        except Exception, e:
            print e
import fileutils

import datetime
import optparse
import os
import re

parser = optparse.OptionParser()
parser.add_option("-d",
                  "--days",
                  default="5",
                  help="Delete directories older than DAYS")
(options, args) = parser.parse_args()

olderThan = datetime.timedelta(int(options.days))

root = autobuild.workarea_rootdir
dateR = re.compile('(\d{4})(\d{2})(\d{2})_\d{6}$')

today = datetime.date.today()

for d in os.listdir(root):
    m = dateR.search(d)
    if not m: continue

    y, m, day = m.group(1, 2, 3)
    created = datetime.date(int(y), int(m), int(day))
    if today - created > olderThan:
        print "Removing " + d
        fileutils.safeRemoveTree(os.path.join(root, d))