Skip to content

Commit 01615f1

Browse files
[Update] - add option -c for column layout for function get sg inbound rules
1 parent dec2eab commit 01615f1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

services/ec2.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,23 @@ aws_ec2_get_instance_type_spect_instruction() {
227227
open https://instances.vantage.sh
228228
}
229229

230-
aws_ec2_get_security_group_inbound_rules_with_hint() {
230+
aws_ec2_get_sg_inbound_rules_with_hint() {
231231
local ec2_instance_id=$(local_aws_ec2_instance_id_peco_menu)
232232
local list_security_group=$(aws ec2 describe-instances --query "Reservations[].Instances[0].SecurityGroups[].GroupId" --instance-id "$ec2_instance_id" | tr '\t' ' ' )
233+
echo -e "\nIf your security group name is too long and break the table layout, consider to use option -c for column layout.\n"
233234
echo -e "List Security Groups: " $list_security_group "\n"
235+
236+
while getopts ":c" opt; do
237+
case ${opt} in
238+
c)
239+
{ echo "GroupName CidrIp FromPort ToPort" && aws ec2 describe-security-groups --group-ids $list_security_group | jq -r '.SecurityGroups[] | {GroupName} as $g | .IpPermissions[] | {FromPort} as $f | {ToPort} as $p | if (.IpRanges | length ) > 0 then (.IpRanges[] | {GroupName: $g.GroupName, CidrIp, FromPort: $f.FromPort, ToPort: $p.ToPort}) else(.UserIdGroupPairs[] as $ug | {GroupName: $g.GroupName, CidrIp: $ug.GroupId, FromPort: $f.FromPort, ToPort: $p.ToPort}) end' | jq -r '(. | [.GroupName, .CidrIp, .FromPort, .ToPort]) | @tsv' ;} | column -t
240+
return 0
241+
;;
242+
\?)
243+
echo "Invalid option, print default table layout. Only option -c is allow."
244+
;;
245+
esac
246+
done
247+
234248
aws ec2 describe-security-groups --group-ids $list_security_group | jq -r '.SecurityGroups[] | {GroupName} as $g | .IpPermissions[] | {FromPort} as $f | {ToPort} as $p | if (.IpRanges | length ) > 0 then (.IpRanges[] | {GroupName: $g.GroupName, CidrIp, FromPort: $f.FromPort, ToPort: $p.ToPort}) else(.UserIdGroupPairs[] as $ug | {GroupName: $g.GroupName, CidrIp: $ug.GroupId, FromPort: $f.FromPort, ToPort: $p.ToPort}) end' | jq -r '(. | [.GroupName, .CidrIp, .FromPort, .ToPort]) | @tsv' | awk 'function printline() { for(i=0;i<88;i++) printf "-"; printf "\n" } BEGIN {printline(); printf("| %-35s | %-20s | %-10s | %-10s |\n", "GroupName", "CidrIp", "FromPort", "ToPort"); printline()} {printf("| %-35s | %-20s | %-10s | %-10s |\n", $1, $2, $3, $4)} END {printline()}'
235249
}

0 commit comments

Comments
 (0)