Skip to content

Instantly share code, notes, and snippets.

View codeinthehole's full-sized avatar
🌏
The main difference between dinosaurs and us is we're building our own meteor.

David Winterbottom codeinthehole

🌏
The main difference between dinosaurs and us is we're building our own meteor.
View GitHub Profile
@codeinthehole
codeinthehole / userdata.sh
Created February 2, 2016 21:21
Terraform config for an EC2 instance with a replaceable EBS volume
#!/bin/bash
DEVICE=/dev/$(lsblk -n | awk '$NF != "/" {print $1}')
FS_TYPE=$(file -s $DEVICE | awk '{print $2}')
MOUNT_POINT=/data
# If no FS, then this output contains "data"
if [ "$FS_TYPE" = "data" ]
then
echo "Creating file system on $DEVICE"
@codeinthehole
codeinthehole / osx_bootstrap.sh
Last active July 16, 2025 10:19
Script to install stuff I want on a new OSX machine
#!/usr/bin/env bash
#
# Bootstrap script for setting up a new OSX machine
#
# This should be idempotent so it can be run multiple times.
#
# Some apps don't have a cask and so still need to be installed by hand. These
# include:
#
# - Twitter (app store)
@codeinthehole
codeinthehole / prettytitle.sh
Created August 20, 2014 15:16
Bash function for print pretty titles
#!/usr/bin/env bash
# Pretty printing function for Bash output
#
# Example usage:
#
# $ notify "hello world"
#
# +-------------+
# | hello world |
@codeinthehole
codeinthehole / user-data.sh
Created August 18, 2014 12:41
Get the value of an EC2 instance's tag
#!/usr/bin/env bash
#
# Get the value of a tag for a running EC2 instance.
#
# This can be useful within bootstrapping scripts ("user-data").
#
# Note the EC3 instance needs to have an IAM role that lets it read tags. The policy
# JSON for this looks like:
#
# {
@codeinthehole
codeinthehole / .gitconfig
Created August 14, 2014 11:06
Git aliases for quickly opening Github pages
[alias]
# Open the Github page for the...
# ...repo homepage (included for consistency)
open = !hub browse --
# ...repo commits
opencommits = !hub browse -- commits
# ...commit page for HEAD
@codeinthehole
codeinthehole / .bashrc
Last active February 12, 2019 09:07
Bash functions for private Docker registries
# Add these functions to your ~/.bashrc in order to be able to query private
# Docker registries from the commandline. You'll need the JQ library
# (http://stedolan.github.io/jq/) to be installed. Alternatively, you can just
# pipe to " python -mjson.tool" to get pretty JSON formatting
# TODO Enter the correct details here
DOCKER_REGISTRY_HOST=docker.yourcompany.com
DOCKER_REGISTRY_AUTH=someuser:somepassword
function _docker_fetch() {
@codeinthehole
codeinthehole / user-data.sh
Created August 1, 2014 14:32
Minimal "user-data" for an AWS EC2 instance
#!/bin/bash
BUCKET=tangent-boilerplate
# Install AWS CLI
apt-get update
apt-get install -y python-pip
pip install awscli
# Fetch and run bootstrap file. For this to work, the EC2 instance needs to have an IAM role
@codeinthehole
codeinthehole / docker-osx-shared-folders.rst
Last active November 11, 2023 01:22
How to share folders with docker containers on OSX

How to share a folder with a docker container on OSX

Mounting shared folders between OSX and the docker container is tricky due to the intermediate boot2docker VM. You can't use the usual docker -v option as the docker server knows nothing about the OSX filesystem - it can only mount folders from the boot2docker filesystem. Fortunately, you can work around this using SSHFS.

" ==================================================
" VIMRC file for David Winterbottom (@codeinthehole)
" ==================================================
" Inspiration {{{
" -----------
" See http://www.youtube.com/watch?v=aHm36-na4-4
"
" Good articles:
" - http://alexpounds.com/blog/2014/06/06/the-vimrc-antiques-roadshow
@codeinthehole
codeinthehole / uwsgi_stats
Last active May 15, 2019 22:00
Zabbix plugin script for extracting uWSGI metrics from a log file
#!/usr/bin/env python
"""
Extract metrics from a uWSGI log file
This should be saved as /etc/zabbix/pluginx/uwsgi_stats and called from
/etc/zabbix/zabbix_agentd.conf.d/uwsgi.conf, which should have contents:
UserParameter=uwsgi.stats[*],/etc/zabbix/plugins/uwsgi_stats $1 $2
To gather these metrics in Zabbix, create a new item which calls this plugin and