#!/usr/bin/env python
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program 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 General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
# 
# An interpretive shell for mercurial
#
try:
    from mercurial import demandimport; demandimport.enable()
except ImportError:
    import sys
    sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
                     ' '.join(sys.path))
    sys.stderr.write("(check your install and PYTHONPATH)\n")
    sys.exit(-1)

import sys
import mercurial.util
import mercurial.dispatch
import gc

for fp in (sys.stdin, sys.stdout, sys.stderr):
    mercurial.util.set_binary(fp)

count = 0
while True:
    gc.collect()
    s = sys.stdin.readline()
    if not s:
        break
    args = s.split()
    exitcode = mercurial.dispatch.dispatch(args)
    if exitcode:
        print "exitcode: %d\n" % exitcode
    else:
        print "exitcode: 0\n"
    count += 1
