#!/bin/bash # .login #+ # NAME: # login # PURPOSE: # Sets up common environment for all user accounts. # CALLING SEQUENCE: # This script is probably best added to the global startup # file /etc/bashrc as: # # . /full_dir/login smei_account smei_dir dat_dir ssw_dir sswdb_dir # # full_dir full directory path to this script # smei_account the user name of the SMEI software account # (default: soft) # smei_dir directory assigned to env var $SMEI # (default: /home/soft/smei) # dat_dir directory assigned to env var $DAT # (default: undefined) # ssw_dir directory assigned to SSW tree # (default: undefined) # sswdb_dir directory assigned to SSWDB data base directory # (default: undefined) # OUTPUTS: # Several other env variables are defined to navigate the SMEI # software tree: $COM, $EXE, $HTM # # Equivalent env variables are set up to navigate a # personal software tree: $FOR, $EXE, $PRO, $COM # # Defines IDL_STARTUP=$SMEI/pro/idl_startup.pro # # If the directory $HOME/soft does not exist, it is assumed # that a new user account is accessed for the first time and # a few initializations occur: # - the directory $HOME/soft is created with in it # the subdirectories $for, etc. # - the file ~/LOGFIL.TXT is initialized # - the startup file $HOME/.bash_profile is modified by # adding $EXE and $COM to the path. # CALLS: # newaccount, alias_bash, update_logfile, intel_setup # mkramdisk # PROCEDURE: # The call to this script should be the only place # where directories need to be hardcoded. # MODIFICATION HISTORY: # FEB-2001, Paul Hick (UCSD/CASS) # AUG-2002, Paul Hick (UCSD/CASS) # Introduced command line arguments to set env variables # instead of hardcoding them for each Linux box separately. # JAN-2003, Paul Hick (UCSD/CASS) # Added env var PYTHONPATH # JUN-2003, Paul Hick (UCSD/CASS) # Added env vars SMEIDB, SMEIDB1, SMEIDB2, SMEIDB3 # FEB-2004, Paul Hick (UCSD/CASS; pphick@ucsd.edu) # Added env var for CVS depository # Added experimental setup for running ssh-agent2 # JUN-2006, Zachary Vaughan (UCSD/CASS; vaughan.zachary@gmail.com # Added argument for java home directory # JUN-2006, Java is now set up by sourcing script java_setup. # Java-related aliases have been added to alias_bash. #- # $EXE and $COM should be added to the path. # $EXE contains binary executable # $COM contains scripts called directly # $TEMP is temporary directory (different for each user) if [ -z "$SMEI" ]; then # @CLASSIFY SMEI_MASTER=soft@ips.ucsd.edu:/home/soft/smei export SMEI_MASTER if [ -z "$HOSTNAME" ]; then HOSTNAME="unknown_host" export HOSTNAME fi # Use arguments to initialize a couple of environment variables. # $SMEI, $DAT, $SSW, $SSWDB if [ -n "$1" ]; then SMEI_ACCOUNT=$1 else SMEI_ACCOUNT=soft fi if [ -n "$2" ]; then SMEI=$2 else SMEI=/home/$SMEI_ACCOUNT/smei fi SMEI_UCSD=$SMEI/ucsd SMEI_FOR=$SMEI_UCSD/gen/for SMEI_CPP=$SMEI_UCSD/gen/cpp SMEI_EXE=$SMEI_UCSD/gen/exe/linux SMEI_LIB=$SMEI_UCSD/gen/lib/linux SMEI_SUBNET="smei smeidb seth sid sky star sun zelda ziggy zorro zulu" export SMEI_ACCOUNT SMEI SMEI_UCSD SMEI_FOR SMEI_CPP SMEI_EXE SMEI_LIB SMEI_SUBNET if [ -n "$3" ]; then DAT=$3 fi if [ -n "$4" ]; then SSW=$4 fi if [ -n "$5" ]; then SSWDB=$5 fi #SSW_INSTR="eit goes lasco sxt mdi trace xray smei" #SSW_INSTR="eit lasco cds sumer mdi uvcs sxt bcs hxt wbs goes smei trace xray xrp uvsp hxrbs cp grs hxis acrim" SSW_INSTR="acrim ana andril batse bcs cds chianti cp eis eit ethz festival findstuff goes grs hessi hxis hxrbs hxrs hxt hydro lapalma lasco lparl mdi mees norh norp nrh nso ovsa pdl smei soon spartan spex stereo sumer sxig12 sxig13 sxt trace uvcs uvsp vdem wbs xray xrp ztools" NAGOYA=$DAT/nagoya export DAT SSW SSWDB SSW_INSTR NAGOYA # List of all drives with SMEI individual frames # The SMEI frames are on $SMEIDB1 and up. Write access should be # limited for these drives. SMEIDBN=/smeidb SMEIDCN=/smeidc export SMEIDBN SMEIDCN SMEIDB1=$SMEIDBN/db1 SMEIDB2=$SMEIDBN/db2 SMEIDB3=$SMEIDBN/db3 SMEIDB4=$SMEIDBN/db4 SMEIDB5=$SMEIDBN/db5 SMEIDB6=$SMEIDBN/db6 SMEIDB7=$SMEIDBN/db7 SMEIDB8=$SMEIDBN/db8 SMEIDB9=$SMEIDBN/db9 export SMEIDB1 SMEIDB2 SMEIDB3 SMEIDB4 SMEIDB5 SMEIDB6 SMEIDB7 SMEIDB8 SMEIDB9 SMEIDC1=$SMEIDCN/dc1 SMEIDC2=$SMEIDCN/dc2 SMEIDC3=$SMEIDCN/dc3 SMEIDC4=$SMEIDCN/dc4 SMEIDC5=$SMEIDCN/dc5 SMEIDC6=$SMEIDCN/dc6 SMEIDC7=$SMEIDCN/dc7 SMEIDC8=$SMEIDCN/dc8 SMEIDC9=$SMEIDCN/dc9 export SMEIDC1 SMEIDC2 SMEIDC3 SMEIDC4 SMEIDC5 SMEIDC6 SMEIDC7 SMEIDC8 SMEIDC9 # List of drives with orbital sky maps SMEISKY0=$SMEIDCN/sky0 SMEISKY1=$SMEIDCN/sky1 #SMEISKY2=$SMEIDCN/sky2 #SMEISKY3=$SMEIDCN/sky3 #SMEISKY4=$SMEIDCN/sky4 export SMEISKY0 SMEISKY1 #SMEISKY2 SMEISKY3 SMEISKY4 # Location of auxilliary SMEI data (patterns, etc.) # Every member of the subnet should have write access to # $SMEIDB0. SMEIDB=$SSWDB/smeidb SMEIDB0=$SMEIDB export SMEIDB0 SMEIDB # @UNCLASSIFY # For accounts other than the 'soft' account, create # user-specific environment variables # Define global environment variables COM=$SMEI/com/linux FOR=$SMEI/for EXE=$SMEI/exe/linux SYS=$SMEI/sys HTM=/home/soft/html export COM FOR EXE SYS HTM #EPHEM=$(find $SMEI -name ephem -type d) EPHEM=$SMEI/ucsd/gen/idl/ephem #JPL_EPH=$EPHEM/jpl #export EPHEM JPL_EPH export EPHEM # Location of Python modules (is added to the intrinsic # path set up by Python itself). PYTHONPATH=$SMEI/ucsd/gen/python export PYTHONPATH # Add $COM and $EXE to the path. PATH=.:$PATH:$EXE:$COM:$SMEI_EXE:$PYTHONPATH if [ "$1" == "nobody" ]; then export PATH . $COM/idl_setup else if [ -z "$6" ]; then TEMP=$HOME/temp export TEMP fi TUB=$HOME/tub ZTEMP=$HOME/ztemp export TUB ZTEMP if [ "$USER" == "$SMEI_ACCOUNT" ]; then user=$SMEI/user else EXE=$HOME/soft/exe if [ "$HOSTNAME" = "ips.ucsd.edu" ]; then BACKUP=$SMEI/user/$USER fi fi # For some reason /usr/local/bin is not in the path # when a script is running from crontab, and hence IDL # is not accessible. Add the directory to the path here # if it is not present yet. if [ -z "$(echo ":$PATH:" | grep ":/usr/local/bin:")" ]; then PATH=$PATH:/usr/local/bin fi if [ ! -d $HOME/bin ]; then mkdir $HOME/bin fi if [ -z "$(echo ":$PATH:" | grep ":$HOME/bin:")" ]; then PATH=$HOME/bin:$PATH fi #if [ ! -d $TEMP ]; then # mkdir $TEMP #fi if [ ! -d $TUB ]; then mkdir $TUB fi if [ ! -h $ZTEMP ]; then if [ -d /ztemp/$USER ]; then ln -s /ztemp/$USER $ZTEMP fi fi if [ "$USER" == "$SMEI_ACCOUNT" ]; then . $COM/mkramdisk else export EXE safe # Add $EXE to the path. PATH=$PATH:$EXE # The non-existence of $HOME/soft in the user home directory is # used to establish that the account is accessed for the first time if [ ! -d $HOME/soft ]; then mkdir $HOME/soft #mkdir $EXE . $COM/update_logfile . $COM/newaccount echo New account initialized. fi fi export PATH if [ "$USER" == "skyd" ]; then HTMD=$ZTEMP/htmd SKYD=$ZTEMP/skyd export HTMD SKYD fi # Set up CVS. SSH is used for remote acces. CVSROOT=.cvscode if [ "$HOSTNAME" == "ips.ucsd.edu" ]; then CVSROOT=$SMEI/$CVSROOT else CVSROOT=:ext:$SMEI_MASTER/$CVSROOT CVS_RSH=ssh fi export CVSROOT CVS_RSH # Create/update the ~/LOGFIL.TXT file # Disabled because mkenv checks for existence before assigning # env vars a valu. Creates problems when NFS mounts are involved that # are not currently on line. #. $COM/update_logfile ARCH=$(uname -m)_$(uname -s) . $COM/gnu_setup . $COM/pgi_setup . $COM/absoft_setup . $COM/java_setup . $COM/idl_setup . $COM/lyx_setup . $COM/matlab_setup # Experimental: display mount point $DAT # This should display NFS mounts. #if [ -n "$DAT" ] #then # mount | grep "$DAT" #fi fi fi . $COM/intel_setup # Set up a bunch of aliases . $COM/alias_bash PS1="\h:\w\\$ " export PS1