
# integrateChangelist.py
#
#    ========== licence begin LGPL
#    Copyright (C) 2002 SAP AG
#
#    This library is free software; you can redistribute it and/or
#    modify it under the terms of the GNU Lesser General Public
#    License as published by the Free Software Foundation; either
#    version 2.1 of the License, or (at your option) any later version.
#
#    This library is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#    Lesser General Public License for more details.
#
#    You should have received a copy of the GNU Lesser General Public
#    License along with this library; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#    ========== licence end
#


import sys
from perforce.integrateLib import simpleIntegrate

def integrateChangelist (options, changeid):
    return simpleIntegrate (changeid, options.branch, options)

def fatalError (msg):
    sys.stderr.write ('integrateChanglist: ' + msg + '\n')
    sys.exit (2)

def checkOptions (options):
    if not options.branch:
        fatalError ('option -b must be specified')

def main (options, args):
    """integrates changes specific to a change list

    Any additional arguments are numbers of change lists.

    """
    checkOptions (options)
    for arg in args:
        newid = integrateChangelist (options, arg)
        if not options.changeList:
            print 'info: new change list ' + str (newid)

def _options ():
    return [
        # (optstring, varname, typechar, default, help)
        ('b', 'branch', ':', None, 'branch name'),
        ('c', 'changeList', ':', 0, 'use existing change list'),
        ('r', 'reverse', '', None, 'reverse integration'),
        ]

if __name__ == '__main__':
    import optlib
    optlib.optMain2 (main, _options ())
