Skip to content

Instantly share code, notes, and snippets.

Jefe Johnson jeffjohnson9046

Block or report user

Report or block jeffjohnson9046

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
jeffjohnson9046 /
Created Feb 13, 2020
A fancy jq filter to turn JSON output into a CSV format
# From the second answer here - this SO answer gets all the credit:
# This is the filter to convert JSON to CSV output:
# NOTE: This filter only works on "flat" JSON; nested properties don't work with this filter as-is.
jq -r '(.[0] | keys_unsorted) as $keys | ([$keys] + map([.[ $keys[] ]])) [] | @csv'
# For example:
aws ec2 describe-instances \
--region us-west-2 \
jeffjohnson9046 / ec2-instance-query.zsh
Last active Feb 13, 2020
Look up an EC2 Instance by public IP across more than one region
View ec2-instance-query.zsh
# This is the function I created that's a wee bit less shitty than the file above. I created a file called (oddly enough)
# ec2-instance-query.zsh and put it in my ~/.oh-my-zsh/custom directory. After sourcing my ~/zshrc, I have a fancy-pants
# function for querying EC2 instances and ElasticIP addresses for a given IP:
function ec2-instance-query() {
echo "Finding EC2 information for IP $1:"
for r in `aws ec2 describe-regions --output text | cut -f4 | grep "us-"`
aws ec2 describe-instances \
--region $r \
--filter "Name=network-interface.addresses.association.public-ip, Values=$1" \
jeffjohnson9046 / set-aws-env.zsh
Last active Feb 4, 2020
A zsh script for setting the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables
View set-aws-env.zsh
# I have several AWS profiles in my ~/.aws/config thus there are several access keys and secret keys in my
# ~/.aws/credentials file. Sometimes (e.g. when using kops or kubectl) I need to have the AWS_ACCESS_KEY_ID
# and AWS_SECRET_ACCESS_KEY environment variables set. There doesn't seem to be a way to use the aws cli to set these
# environment variables for me, so... well... here we are.
# This script will:
# * Look at the ~/.aws/credentials file for the specified profile
# * Get the next two lines beneath the profile name, which are the access_key_id and secret_key respectively
# * Export those two values as environment variables
jeffjohnson9046 /
Created Jan 14, 2020
Steps I took to set up my Z shell prompt the way I like
# NOTE: These steps assume that zsh is already installed
# Download and install iTerm2, which can be found here:
# Install oh-my-zsh (details and alternate installation instructions can be found here:
sh -c "$(curl -fsSL"
# Install the Powerlevel9k theme for zsh (details for using the oh-my-zsh installation can be found here:
git clone ~/.oh-my-zsh/custom/themes/powerlevel9k
jeffjohnson9046 /
Created Oct 19, 2019
Get the currently used and maximum available memory for a Docker container running in Kubernetes
# These commands demonstrate how to determine how much memory is availble on a k8s worker node and how much memory is
# available to the k8s _container_ hosted on that node.
# Source:
# Other interesting articles:
# These values are approximations, because according to the first article, calculating/determining available memory
jeffjohnson9046 /
Last active Aug 8, 2019
Create a SAML keystore for SSO
# Create a password-protected keystore. Change the -keypass value to a password that meets your password policy. LastPass (or some other password generator) can come in handy here for creating a password.
keytool -genkeypair -alias my-service-provider -keypass password -keyalg RSA -keysize 2048 -keystore my-sso-keystore.jks
# Use openssl to get the identity provider's public key as a file named sso.crt.
openssl s_client -connect > sso.crt
# Open the sso.crt file in any editor and remove everything around the BEGIN and END lines. If required, concatenate with any intermediate certificates.
vi sso.crt
# When done editing, the file should look similar to this:
jeffjohnson9046 / .psqlrc
Last active Aug 3, 2019
A .psqlrc file gathered from various sources, for use with PostgreSQL
View .psqlrc
-- Set client encoding
\encoding UTF8
\set QUIET 1
-- print 'NULL' (instead of a blank) for any columns that have a null value
\pset null 'NULL'
-- Do not automatically commit after every statement
jeffjohnson9046 /
Last active Jul 30, 2019
Rename files/directories so that the first letter is upper-case on OS X
# Assume you have a directory structure that looks something like this:
ls -alh /path/to/my/directory
drwxr-xr-x 38 jeffjohnson staff 1.2K Jul 18 11:07 ./
drwxr-xr-x 6 jeffjohnson staff 192B Jun 23 15:00 ../
drwxr-xr-x 10 jeffjohnson staff 320B Aug 28 2017 foo/
drwxr-xr-x 12 jeffjohnson staff 384B Dec 18 2017 bar/
drwxr-xr-x 11 jeffjohnson staff 352B Feb 26 2018 baz/
-rw-r--r-- 1 jeffjohnson staff 1.8M Aug 14 2017 some-update.sql
# list continues...
jeffjohnson9046 / .mongrc.js
Created Jun 27, 2019
A prompt for the mongo shell that displays the user you're logged in as and the database you're pointed at.
View .mongrc.js
Set the mongo shell prompt to display [user name]@[database name]. If the user or database name cannot
be captured, then display "<none>" instead.
var prompt = function() {
var user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0].user || "<none>";
var dbLabel = db.getName() || "<none>";
return user + "@" + dbLabel + ">";
# From here:
# First, make sure you have everything locally:
$ git fetch --all --tags --prune
# Show the local branches a commit is on (the "b4f8b91" is the first 7 characters of the commit hash):
$ git branch --contains b4f8b91
* feature/ast-3975
You can’t perform that action at this time.