#!/usr/bin/python

import os, sys

if "VMTREE" in os.environ:
   sys.path.append(os.path.join(os.environ["VMTREE"], "apps", "pythonroot"))

from vmware.esximage import ImageProfile, Vib
from vmware.esximage.ImageBuilder import EsxIsoImage

def BuildImage(isofn, name, creator, vibfns):
   imgprofile = ImageProfile.ImageProfile(name, creator)
   for vibfn in vibfns:
      vibobj = Vib.ArFileVib.FromFile(vibfn)
      imgprofile.AddVib(vibobj)
   imgbuilder = EsxIsoImage.EsxIsoImage(imgprofile)
   imgbuilder.Write(isofn)

if __name__ == "__main__":
   import optparse

   usage = "usage: %prog [options] ISOFN, VIBFN, VIBFN, ..."

   parser = optparse.OptionParser(usage=usage)
   parser.add_option("-c", "--creator", dest="creator", metavar="CREATOR",
                     default=os.environ.get("USER", "Unknown"),
                     help="The name of the Image Profile creator.")
   parser.add_option("-n", "--name", dest="name", default="Test Image Profile",
                     metavar="NAME", help="A name for the Image Profile.")

   options, args = parser.parse_args()

   if len(args) < 2:
      parser.error("Required parameters missing.")

   try:
      BuildImage(args[0], options.name, options.creator, args[1:])
   except Exception, e:
      sys.stderr.write("Encountered error creating image: %s", e)
      sys.exit(1)
