https://github.com/teuben/nemo
Raw File
Tip revision: d0f673bdaeabe8dffa77528c13d81063a20d29f6 authored by Peter Teuben on 03 April 2024, 01:39:10 UTC
format
Tip revision: d0f673b
nemo_start.py.in
#  -*- python -*-
#
#  @WARNING@
#
#  this file can be copied into your python site-packages, or somewhere where
#  then the python command "import nemo_start" will work. This will modify your environment
#  such that NEMO commands are accessible to python as if $PATH had been properly
#  set in the parent shell (which may be absent), and a few other environment variables
#  that the runtime needs.
#
# @todo finish this with all the variable needed

import os

def _check_add(envvar, value, prepend=True):
    """
    """
    if envvar in os.environ:
        if prepend:
            os.environ[envvar] = value+':'+os.environ[envvar]
        else:
            os.environ[envvar] = os.environ[envvar]+value+':'
    else:
        os.environ[envvar] = value

if not 'NEMO' in os.environ:
    _NEMO       = '@NEMO@'

    line = open('%s/VERSION' % _NEMO).readlines()[0]
    print("Loading NEMO=%s  VERSION %s" % (_NEMO,line.strip()))

    # _PGPLOT_DIR = '@PGPLOT_DIR@'

    _check_add('PATH',              '%s/bin' % _NEMO)
    _check_add('LD_LIBRARY_PATH',   '%s/lib' % _NEMO)   # ? opt/lib ?
    _check_add('DYLD_LIBRARY_PATH', '%s/lib' % _NEMO)   # ? opt/lib ?

    os.environ['NEMO']     = '%s'                 % _NEMO 
    os.environ['NEMOBIN']  = '%s/bin'             % _NEMO           # ? opt/bin ?
    os.environ['NEMOLIB']  = '%s/lib'             % _NEMO
    os.environ['NEMOOBJ']  = '%s/obj'             % _NEMO    
    os.environ['BTRPATH']  = '.:%s/obj/bodytrans' % _NEMO
    os.environ['POTPATH']  = '.:%s/obj/potential:%s/obj/acc'             % (_NEMO,_NEMO)
    os.environ['ACCPATH']  = '.:%s/obj/manip:%s/usr/dehnen/falcON/manip' % (_NEMO,_NEMO)
    os.environ['YAPP']     = '@YAPP_DEF@'
    os.environ['NEMOHOST'] = '@NEMOHOST@'
    
    
#    export MANIPPATH=.:$NEMO/obj/manip:$NEMO/usr/dehnen/falcON/manip
#    export NEMOVER=`cat $NEMO/VERSION`
#    export NEMOSYS=`uname -s`
#    export NEMOSITE=`hostname`

# export PYTHONPATH=$NEMO/py/modules              # ??  do we still need this
# 

    # falcON  @todo check missing items from $FALCON/falcON_start.sh
    _FALCON = '@NEMO@' + '/usr/dehnen/falcON'
    os.environ['FALCON'] = _FALCON
    _check_add('PATH',              '%s/bin'       % _FALCON)    
    _check_add('LD_LIBRARY_PATH', '%s/lib'         % _FALCON)
    _check_add('LD_LIBRARY_PATH', '%s/utils/lib'   % _FALCON)
    _check_add('DYLD_LIBRARY_PATH', '%s/lib'       % _FALCON)
    _check_add('DYLD_LIBRARY_PATH', '%s/utils/lib' % _FALCON)
else:
    print("NEMO is already loaded")
back to top