#!/usr/bin/env python
from esys.lsm.util import InstallInfo
from esys.lsm.util import PathSearcher

import os
import sys

moduleName = sys.argv[1]
exec("import " + moduleName)
moduleFileName = eval(moduleName + ".__file__")

mptrun = PathSearcher().find("mpirun")
os.execv(
  mptrun,
  [
    mptrun,         # argv[0]
    "-up", "1024",  # Universe size needs to be at least as large as the total
                    # number of spawned processes.
    "-np", "1",     # Start one MPI process and the workers get spawned.
    os.path.join(InstallInfo.binDir, "mpipython"),
    moduleFileName
  ] +\
  sys.argv[2:]
)
