jq is useful to slice, filter, map and transform structured json data.
brew install jq
| # Count total EBS based storage in AWS | |
| aws ec2 describe-volumes | jq "[.Volumes[].Size] | add" | |
| # Count total EBS storage with a tag filter | |
| aws ec2 describe-volumes --filters "Name=tag:Name,Values=CloudEndure Volume qjenc" | jq "[.Volumes[].Size] | add" | |
| # Describe instances concisely | |
| aws ec2 describe-instances | jq '[.Reservations | .[] | .Instances | .[] | {InstanceId: .InstanceId, State: .State, SubnetId: .SubnetId, VpcId: .VpcId, Name: (.Tags[]|select(.Key=="Name")|.Value)}]' | |
| # Wait until $instance_id is running and then immediately stop it again | |
| aws ec2 wait instance-running --instance-id $instance_id && aws ec2 stop-instances --instance-id $instance_id | |
| # Get 10th instance in the account |
| #!/bin/env python | |
| """ | |
| A simple example of using Python sockets for a client HTTPS connection. | |
| """ | |
| import ssl | |
| import socket | |
| s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
| s.connect(('github.com', 443)) |
| (defun aj-toggle-fold () | |
| "Toggle fold all lines larger than indentation on current line" | |
| (interactive) | |
| (let ((col 1)) | |
| (save-excursion | |
| (back-to-indentation) | |
| (setq col (+ 1 (current-column))) | |
| (set-selective-display | |
| (if selective-display nil (or col 1)))))) | |
| (global-set-key [(M C i)] 'aj-toggle-fold) |