Keep a link

From mn/geo/geoit
Jump to: navigation, search
# .bash_profile for hycamp group
# The purpose of this file is to enable
# sshfs mounting of a directory that 
# contains your bash customizations so
# that the directory may be kept consistent
# across machines in the network
# This file should live in your $HOME
# and assumes you have a symlink to your
# customized bashrc file as defined by
# the bashfile variable below.
# johnbur 15.07.03 


The variables `$bashfile` will be setup in this script and later 'sourced' as you log in.

# generate a .display file (used as a trick for screen sessions)
echo "export DISPLAY=$DISPLAY" > .display.`whoami`.`hostname`

The line above is just a 'trick' that is explained here

Below is the key to setting up the symlink to the mounted directory in your home area.

# A test to see whether we've already mounted the sverdrup net
# /etc/mtab is a file on linux machines that keeps a record of what file mounts have been
# made. We look for our directory in that file and call that 'mounted' to see if it exists already
mounted=`cat /etc/mtab | grep $net | awk '{print $2}'`

# if it exists, then we just say so and exit
if [ "$net" == "$mounted" ]; then
    echo "Sverdrup mount exists"
# if not, then we do some work to mount it with sshfs
    # first, make sure our mountpoint (the directory where we'll create the mount) exists, if not create it
    if [ ! -d $net ]; then
        mkdir $net
    # then mount the remote directory to your mountpoint  
    sshfs -o IdentityFile=~/.ssh/id_rsa $USER@sverdrup:/net $net

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    # my .bashrc file is actually sourced
    # from a file called bashrc in .dot
    # folder (which is symlinked to our
    # team network share)
    if [ -f $bashfile ]; then
    . $bashfile