#!/bin/sh
## friends.sh
##
## Made by spycAm
## Login   <raud_c@epita.fr>
##
## Started on  Tue Nov 21 18:23:53 2006 spycAm
## Last update Thu Nov 26 15:46:23 2009 Patrick Chevalier

#passwd="`ypcat passwd 2>/dev/null`"

isfullname=0
nshwho="`ns_hwho 2>/dev/null`"
logins=""
M=1
S=1


if [ "$1" = "-h" ]; then
    echo -e "./friends.sh [-m] [login1 login2 ...]\n\n$ cat ~/.loginlist\nlogin1\nlogin2" && exit 1
fi

while [ $# -gt 0 ]; do
    if [ "$1" = "-m" ]; then
	M=0
    else
	if [ "$1" = "-s" ]; then
	    S=0
	else
	    isfullname=1
	    logins="${logins} $1"
	fi
    fi
    shift 1
done;
if [ "$logins" = "" ]; then
    if [ -r "${HOME}/.loginlist" ];then
	logins=`cat ~/.loginlist`
    else
	echo "Erreur : ~/.loginlist absent." && exit 1
    fi
else
fi

for i in $logins; do
    if [ $S = "0" ]; then
	who=`ns_who -s $i`
    else
	who=`ns_who $i`
    fi
    #echo $who":"$i
    size="`ns_who $i | wc -l`"
    fullname=$i
    if [ $isfullname -gt 0 ]; then
	fullname=`logins -ol $i | cut -d':' -f5 2> /dev/null`
    fi
    if [ $size = 1 ]; then # Online
	k=0
	poste=""
	for j in `echo $who | cut -d'@' -f2`; do
	    if [ $k = 0 ]; then
		poste=$j
	    else
		poste=$poste" "$j
	    fi
	    k=$(($k+1))
	done

	    echo "[5m[32m[on][m[m[35m  $fullname[m ([36m${poste}[m)";
  
    else
	if [ $size -gt  1 ]; then # Online Moulti-poste
	    echo   "[5m[32m[on][m[m[35m  $fullname[m"
	    for l in `gseq $size`; do
		k=0
		poste=""
		for j in `printf "$who" | sed "s/.*@//" | head -$l | tail -1`; do
		    if [ $k = 0 ]; then
			poste=$j
		    else
			poste=$poste" "$j
		    fi;
		    k=$(($k+1))
		done
		if [ "`echo \"$poste\" | grep sm- | wc -l`" -gt 0 ]; then # En sm
		    printf "\t\t"
		    echo -n "([36m"`echo "$poste" | cut -d'-' -f2 | cut -d'_' -f1`"[m)"
		    echo -n  "([36m"`echo "$poste" | cut -d'_' -f2`"[m)"
		    echo "([32m"`printf "$nshwho" | grep "$poste" | cut -d' ' -f1`"[m)"
		else
		    printf "\t\t"
		    echo "([36m ${poste}[m)";
		fi
	    done
	else # Offline
	    echo "[31m[off][m[35m $fullname[m";
	fi
    fi
done
if [ "$M" = "0" ]; then
    echo
    /u/epita_2010/raud_c/public/piepack/sm.sh -s "$logins"
fi
