#!/bin/bash

echo "----------------------------" 
date
echo "Parameters $*" 

NOVFS_MOUNT_POINT=`cat /etc/mtab | grep novfs | tail -1 | cut -d ' ' -f 2`

if [ -z $NOVFS_MOUNT_POINT ]; then
	echo "No Novell filesystem"
	#kdialog --title "Novell Client For Linux Error" --error "No Novell file system found"
	exit 0
fi
	
echo "novfs mount point = [$NOVFS_MOUNT_POINT]"
echo "requested directory = [$1]"
	
FULLPATH=$1

REPLACE=`echo $FULLPATH | cut -d "/" -f 2`

FULLPATH=`echo "$FULLPATH" | sed "s|/$REPLACE|\&/$REPLACE|g"`
	
ITEM=1
COUNTER=1
SPACE=1

while [  $ITEM -eq 1 ]; do
	let COUNTER+=1
        TAIL=`echo $FULLPATH | cut -d "&" -f $COUNTER`
	
	#remove last space
	TAIL=`echo $TAIL | sed "s/ *$//"`
	echo "TAIL = $TAIL"
	if [ -z "$TAIL" ]; then
	    ITEM=0
	    break;
	fi
	
	FPATH=""
	while [ "$TAIL" ]; do
		HEAD=`echo "$TAIL" | cut -d "/" -f 2`
		TAIL=`echo "$TAIL" | sed "s/^\/$HEAD//"`
		echo "HEAD = [$HEAD] TAIL = [$TAIL]"
		[ -z "FPATH" ] && FPATH="$HEAD" || FPATH="$FPATH/$HEAD"

		if [ -h "$FPATH" ];then 
			FPATH=`ls -l "$FPATH" | sed 's/.* -> //g'`
		fi
	done
	echo "FPath = [$FPATH]"
	
	
	ISNOVFS=`echo "$FPATH" | egrep "^$NOVFS_MOUNT_POINT"`
	echo "ISNOVFS = [$ISNOVFS]"
	if [ -z "$ISNOVFS" ]; then
		echo  "Not a Novell filesystem"
		#kdialog --title "Novell Client For Linux Error" --error "Directory\n$1\nis not a Novell file system"
		exit 0
	fi

	
	EFPATH=`echo "$FPATH" | cut -d "/" --output-delimiter="&slash&" -f 1- `
	ENMP=`echo $NOVFS_MOUNT_POINT | cut -d "/" --output-delimiter="&slash&" -f 1- `
	ESERVERPATH=`echo "$EFPATH" | sed "s/^$ENMP//" | sed "s/^&slash&//" | sed "s/^$USER//" | sed "s/^&slash&//" `
	SERVERPATH=`echo "$ESERVERPATH" | sed 's/&slash&/\//g'`
	
	echo "SERVERPATH = [$SERVERPATH]"
	
	if [ -z `echo "$SERVERPATH" | sed "s/[^\/]//g"`  ]; then
		echo  "No Volume Specified"
		#kdialog --title "Novell Client For Linux Error" --error "Directory\n$1\nis not a Novell file system"
		exit 0
	fi
	
	NWSERVER=`echo "$SERVERPATH" | cut -d '/' -f 1`
	NWVOLUME=`echo "$SERVERPATH" | cut -d '/' -f 2`
	NWPATH=`echo "$SERVERPATH" | cut -d '/' -f 3- | cut -d "/" --output-delimiter="&slash&" -f 1- | sed 's/&slash&/\\\\\\\\/g'`
	
	echo "NWServer = [$NWSERVER] NWVOLUME=[$NWVOLUME] NWPath=[$NWPATH]"

	if [ -z "$ALLPATH" ];then
	    ALLPATH="$NWVOLUME:\\$NWPATH"
	else
	    ALLPATH="$NWVOLUME:\\$NWPATH*$ALLPATH"
	fi
done

if [ "$NWPATH" ];then
    eval $2 -s "$NWSERVER" -d "\"$ALLPATH\""
else
    eval $2 -s "$NWSERVER" -d "$NWVOLUME:"
fi
