74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
eval "$(fzf --bash)"
 | 
						|
 | 
						|
FMENU="fzf --header=$(basename "$0") \
 | 
						|
           --layout=reverse \
 | 
						|
           --exact \
 | 
						|
           --border=bold \
 | 
						|
           --border=rounded \
 | 
						|
           --margin=5% \
 | 
						|
           --multi \
 | 
						|
           --color=dark \
 | 
						|
           --height=95% \
 | 
						|
           --info=hidden \
 | 
						|
           --header-first \
 | 
						|
           --bind change:top \
 | 
						|
           --prompt"
 | 
						|
 | 
						|
 | 
						|
_fzf_compgen_path() {
 | 
						|
    fd --hidden --follow --exclude ".git" --exclude ".cargo" --exclude ".cache" . "$1"
 | 
						|
}
 | 
						|
 | 
						|
sshto() {
 | 
						|
    ssh $(cat ~/.ssh/config | grep "Host " | awk '{print $2}' | $FMENU "choose host ")
 | 
						|
}
 | 
						|
 | 
						|
sshapt() {
 | 
						|
    user=$(echo $1 | cut -d@ -f1)
 | 
						|
    prefix=$(echo $1 | cut -d@ -f2)
 | 
						|
    [ -z "$user" ] && user="useraccount"
 | 
						|
    [ -z "$prefix" ] && {
 | 
						|
        apt=$(cat ~/bazis.csv | $FMENU "Выбирай аптеку: ")
 | 
						|
        [ -z "$apt" ] && return 1
 | 
						|
        prefix=$(echo $apt | cut -d, -f1)
 | 
						|
    } 
 | 
						|
 | 
						|
    echo "USER: '$user'"
 | 
						|
    echo "PREFIX: $prefix"
 | 
						|
 | 
						|
    octet1=10
 | 
						|
    octet2=0
 | 
						|
    octet3=0
 | 
						|
    case "${#prefix}" in
 | 
						|
        1)
 | 
						|
            octet3=$prefix
 | 
						|
            ;;
 | 
						|
        2)
 | 
						|
            octet3=$prefix
 | 
						|
            ;;
 | 
						|
        3)
 | 
						|
            octet2=${prefix:0:2}
 | 
						|
            octet3=${prefix:2:2}
 | 
						|
            ;;
 | 
						|
        4)
 | 
						|
            octet2=${prefix:0:3}
 | 
						|
            octet3=${prefix:3:3}
 | 
						|
            ;;
 | 
						|
    esac
 | 
						|
    ips=""
 | 
						|
    for i in {100..130..10}; do
 | 
						|
        addr=$octet1.$octet2.$octet3.$i
 | 
						|
        printf "Trying $addr..."
 | 
						|
        nc -z -w 1 $addr 22
 | 
						|
        [ $? -eq 0 ] && {
 | 
						|
            [ -z "$ips" ] && ips=$addr || ips=$ips'\n'$addr
 | 
						|
            printf " yes!\n"
 | 
						|
        } || printf " no.\n"
 | 
						|
    done    
 | 
						|
    addr=$(printf "$ips" | $FMENU "Выбери ПК: ")
 | 
						|
    [ -z "$addr" ] && return 1
 | 
						|
 | 
						|
    ssh $user@$addr
 | 
						|
     
 | 
						|
}
 |