#! /usr/bin/python
import sys
import subprocess
import os.path
import stat

__author__ = 'brock'

def main():
    distributiondirectory = '/csciloc/ubuntu/Distributions'
    pycharmversion = '4.5.4'
    pycharmcommunityversion = 'pycharm-community-{0}'.format(pycharmversion)
    pycharmtarfile = pycharmcommunityversion + '.tar.gz'

    pycharmtarloc = os.path.join(distributiondirectory,
                                 pycharmtarfile.format(pycharmversion))
    tarbin = '/bin/tar' ;
    dstdir = '/opt' ;
    localbintarget = '/usr/local/bin/charm' ;
    localbinexec = '/csciloc/ubuntu/Images/UNCACSCI-charm' ;
    installexec = '' ;
    tarargs = [tarbin, '--extract', '--verbose', '--gzip',
               '--directory', dstdir,
               '--file', pycharmtarloc]
    print tarargs
    rc = subprocess.call(tarargs)
    if rc != 0:
        sys.exit('file extraction failed!')
    pycharminstallexec = os.path.join(
                            os.path.join(
                              os.path.join(dstdir, pycharmcommunityversion),
                              'bin'),
                            'pycharm.sh')
    print pycharminstallexec
    rc = subprocess.call([pycharminstallexec])
    if rc != 0:
        sys.exit('charm install failed!')
    print 'On install'
    print '  do not import'
    print '  then accept defaults'
    rc = subprocess.call(['/bin/cp', localbinexec, localbintarget])
    os.chmod(localbintarget,
             stat.S_IRWXU |
             stat.S_IRGRP | stat.S_IXGRP |
             stat.S_IROTH | stat.S_IXOTH )

if __name__ == '__main__':
    main()
