#!/usr/bin/env python

import  os, sys

def okay(msg):
    print msg
    a=raw_input("   Press <ENTER> to continue (anything else will terminate): ")

    if a:
        sys.exit(1)

    return


# Simple python script to install mma from tarball
# This should be fixed to be more versatile. Volunteers?

# Before we do anything, make sure we have an up-to-date python.

pyMaj=2
pyMin=4

if sys.version_info[0] < pyMaj or sys.version_info[1] < pyMin:
    print
    print "You need a more current version of Python to run MMA and this install script."
    print "We're looking for something equal or greater than version %s.%s" % \
        (pyMaj,pyMin)
    print "Current Python version is ", sys.version
    print
    sys.exit(0)


# Banner. Check to make sure user has root permissions.

print """
This script will install mma, the standard library and the
python modules using symbolic links to the current directory.
"""

try:
    u=os.getuid()
except:
    u=1

if u:
    okay("""You do not appear to be running this script as 'root' user.
Continuing will probably cause all kinds of strange errors
and a generally unsatisfactory experience. But, we can try...
""")

rootdir = "/usr/local/share"
rootexe = "/usr/local/bin"
  
dir = rootdir + "/mma"
exe = rootexe + "/mma"

# Check to make sure install directories exist. Offer to create
# ... these might need to be created in Mac OS X

if not os.path.exists(rootdir):
    okay("""The directory %s does not exist. Create okay?""" % rootdir)
    if os.system("mkdir -p %s" % rootdir):
        print "Opps, create failed. Were you root?"
        sys.exit(1)
    
if not os.path.exists(rootexe):
    okay("""The directory %s does not exist. Create okay?""" % rootexe)
    if os.system("mkdir -p %s" % rootexe):
        print "Opps, create failed. Were you root?"
        sys.exit(1)
      
if os.path.exists(dir):
    okay("""The directory %s currently exists. Proceeding will overwrite
with a new link. YOU MAY LOSE DATA.""" % dir)

if os.path.exists(exe):
     okay("""The file %s currently exists. Proceeding will remove this
file with a new link. YOU MAY LOSE DATA.""" % exe)

okay("""Okay, I'm ready to create the links. I will create 2 links:
 - The main distribution and library at %s
 - The callable executable at %s
""" % (dir, exe) )

os.system("ln -sf `pwd` %s" % dir)
os.system("ln -sf `pwd`/mma.py %s" % exe)


print "There are some man pages in %s/docs/man that you may wish to install." % dir


print "Everything seems to be okay. We suggest you first update the database"
print "with the command mma -G."
print "Have Fun!"
