/usr/bin/sfepy-run is in python-sfepy 2016.2-4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #!/usr/bin/python
"""
Simple wrapper for main SfePy commands (scripts).
Available commands are dynamically defined by presence of *.py scripts
in default directory (scripts-common).
"""
import os.path as op
import sys
import argparse
import subprocess
import sfepy
def get_commands():
"""
Get available commands (and corresponding scripts) for SfePy wrapper.
Returns
-------
commands : dict
The command : path_to_script dictionary.
"""
scripts = [
'phonon.py',
'extractor.py',
'homogen.py',
'postproc.py',
'probe.py',
'run_tests.py',
'schroedinger.py',
'shaper.py',
'simple.py',
]
if not sfepy.in_source_tree:
bin_dir = op.normpath(op.join(sfepy.data_dir, 'script'))
scripts = [op.normpath(op.join(bin_dir, i)) for i in scripts]
cmd = [op.splitext(op.basename(i))[0] for i in scripts]
commands = dict(zip(cmd, scripts))
return commands
def main():
cmd_list = get_commands()
parser = argparse.ArgumentParser(
description='Simple wrapper for main SfePy commands.',
version='%(prog)s' + sfepy.__version__,
usage='%(prog)s [command] [options]'
)
parser.add_argument(
'-w',
'--window',
help='use alternative (pythonw) interpreter',
action='store_true',
dest='py_cmd'
)
parser.add_argument(
'command',
choices=sorted(cmd_list.keys()),
help='Available SfePy command(s).')
parser.add_argument(
'options',
nargs=argparse.REMAINDER,
help='Additional options passed directly to selected [command].')
if not len(sys.argv) > 1:
parser.print_help()
return
options = parser.parse_args()
py_cmd = 'python' if not options.py_cmd else 'pythonw'
args = [py_cmd, cmd_list[options.command]] + options.options
subprocess.call(args)
if __name__ == '__main__':
main()
|