Mercurial > repos > malex > gaussian
view gaussian.py @ 2:ed472dc06c20 draft default tip
Uploaded 1.0.0
author | malex |
---|---|
date | Tue, 18 Sep 2012 23:03:01 -0400 |
parents | |
children |
line wrap: on
line source
#/usr/bin/env python """ Copyright (C) 2012 Ying Zhang <zhang@hpc.ufl.edu> and Oleksandr Moskalenko <om@hpc.ufl.edu> University of Florida Research Computing This script checks the user permission for using gaussian software. If permission is granted, it runs g09 with inputfile. It takes 2 command line options: $name: the $__user_name__ template preset that corresponds to the real username. $inputfile: a input file for g09 """ import sys, os, shutil from subprocess import Popen, PIPE if len(sys.argv) == 3: name = sys.argv[1] ginput = sys.argv[2] else: msg = "Error: wrong number of parameters provided.\n" sys.stderr.write(msg) sys.exit(1) command = "groups " + name + " | grep gaussian" result = Popen([command], shell=True, stdout=PIPE, stderr=PIPE, close_fds=True) stdout, stderr = result.communicate() return_code = result.returncode if return_code: errmsg = "Error: only users in the gaussian group can use this software.\n" sys.stdout.write(stdout) sys.stderr.write(errmsg) sys.stderr.write(stderr) sys.stderr.write("Return error code %i from command:\n" % return_code) sys.stderr.write("%s\n" % command) sys.exit(2) else: if not os.path.exists('gaussian.com'): shutil.copyfile(ginput, 'gaussian.com') cmd = 'source /galaxy/run/dev/tools/chemistry/env.sh; g09 gaussian.com' result = Popen([cmd], shell=True, stdout=PIPE, stderr=PIPE, close_fds=True) stdout, stderr = result.communicate() return_code = result.returncode if return_code: sys.stdout.write(stdout) sys.stderr.write(stderr) sys.stderr.write("Return error code %i from command:\n" % return_code) sys.stderr.write("%s\n" % result) sys.exit(1) else: sys.stdout.write(stdout) sys.stdout.write(stderr) sys.exit(0)