Nautilus open in terminal + nfs + ssh

Nagyon kényelmes, hogy bármilyen mappát is nézek épp nautilusban, egy jöbbklikk és "megnyitás terminálban" után máris használhatok is konzolos parancsokat abban a mappában.

Ez szép és jó, ha a helyi gépen akarok konzolt nyitni. De mi van, ha épp egy másik gép nfs-el mountolt mappájában állok, és egy ottani konzolt szeretnék nyitni?

Letöröltem a nautilus-open-terminal csomagot, és felraktam helyette a nautilus-actions -t. Csináltam egy az eredetire hasonlító, de saját scriptet hívó környezetimenü-elemet.

Ha helyi gépen tárolt mappán állok, megnyitja a terminált a szokásos módon, ha a szerver gép egy mappáján, akkor megkérdezi, hogy melyik gépen akarom a terminált megnyitni.

open_in_terminal:


#!/bin/bash
if [[ $1 == "" ]] ; then
	echo $0 {directory}
fi
host=localhost
echo $1 | grep /mnt/kitty-home
if [[ $? -eq 0 ]] ; then
	host=$(zenity --list --text "Melyik gépen nyissam meg?" --column Számítógép localhost kitty)
fi
if [[ "$host" == localhost || "$host" == "" ]] ; then
	cd "$1"
	gnome-terminal
else
	dir=$( echo $1 | sed 's@/mnt/kitty-home@/home@')
	gnome-terminal --execute ssh_to_host_dir.sh kitty "$dir"
fi

ssh_to_host_dir.sh


#!/bin/bash
if [[ $1 == "" || $2 == "" ]] ; then
	echo $0 {host} {directory}
fi
host="$1"
dir="$2"
echo Establishing connection to $host/$dir
ssh -t "$host" cd "'$dir'" \; exec bash -il

Lehetne szebben is, pl. mtab-ból kiolvasva a host-nevet, de nekem egyelőre ez is megteszi. Ha hibát találtok benne vagy valaki továbbfejlesztené, ne fogjátok vissza magatokat.

Hozzászólások

gnome-terminal -e 'ssh -l ${USER} ${host} \"cd ${dir}; exec /bin/bash\"'

PS: Trey, ha topicníyitóhoz szólok hozzá, az nem láccik... :( Lehet valamit kezdeni a dologgal? Zavaró kissé...

Először én is egyben akartam megcsinálni, de aztán mégis inkább ketté szedtem, mert újrafelhasználhatóság meg a többi, és így tudtam a


echo Establishing connection to $host/$dir

feature-t működésre bírni, azaz, hogy ne az üres terminál ablakot lássam amikor megnyitom a kapcsolatot, hanem írja ki, hogy mit csinál a háttérben.