#!/bin/bash

port=$1
if [ -z "$port" ]; then
  echo "Usage: $0 <redis_port>"
  exit 0
fi

redis-cli -c -p 6379 cluster nodes | perl -lpe 'BEGIN { sub getip { $h = (split(/\s/, qx(host $_[0])))[-1]; $h =~ s/\..*//; return $h } } /(2a02:\S+):\d+ /; $ip = getip($1); s/$1/$ip/' | sed 's/:/ /' | perl -lane '$id2host{$F[0]} = "$F[1] $F[2]"; push @strs, $_; END { for $str (@strs) { map { $str =~ s/$_(\s\d+\s\d+\s\d+\s\S+)$/$id2host{$_}$1/g } keys %id2host; $str =~ s/master -/master - -/; }; print join "\n", @strs }' | sort -k5,6 -k2,3
