bash-utils/chat/chat

41 lines
1009 B
Plaintext
Raw Normal View History

2021-09-26 15:43:34 +02:00
#!/bin/bash
2021-09-26 15:50:27 +02:00
chat="~/.chat"
install()
{
staffUsers=$(cat /etc/group | grep staff | awk -F: '{print $4}' | tr ',' ' ')
mkdir -p /usr/local/chat
cd /usr/local/chat/
mkdir -p $(echo "$staffUsers")
touch $(echo $staffUsers | tr ' ' '\n' | awk '{print "/usr/local/chat/" $1 "/private.chat"}')
chmod -R 775 /usr/local/chat
}
install
listen()
{
tail -f echo /usr/local/chat/$USER/private.chat
}
2021-09-26 15:50:12 +02:00
send()
{
2021-09-26 15:50:27 +02:00
user=$(echo $1 | awk -F@ '{print $1}')
vm=$(echo $1 | awk -F@ '{print $2}')
# echo "Send to ${user}@${vm}"
p2vm $vm exec 'echo -e "\\n'$c_white_bg$c_black$USER'@'$HOSTNAME$c_ $(date +%D\ %T)' '$c_cyan${@:2}$c_'" >> /usr/local/chat/'$user'/private.chat' -sy
2021-09-26 15:50:12 +02:00
}
repl()
{
2021-09-26 15:50:27 +02:00
read -re -p "chat> " mess
echo -e "$c_white_bg$c_black$USER@$HOSTNAME$c_ $(date +%D\ %T) $c_cyan$mess$c_"
send $1 $mess
repl $1
2021-09-26 15:50:12 +02:00
}
2021-09-26 15:50:27 +02:00
if [[ $1 = "listen" ]]
then
listen
else
[[ -z $2 ]] && repl $1 || send $@
fi