Skip to content

Instantly share code, notes, and snippets.


Matt Fletcher MaffooBristol

  • Maffcorp Ltd
  • Bristol, England
View GitHub Profile
MaffooBristol / find-styled.bash
Last active Mar 10, 2020
Find all files named StyledFoo.js and then find how many times they're referenced in React files
View find-styled.bash
# Find all files named StyledFoo.js and then find how many times they're referenced in React files
for i in $(find . -name "Styled*.js"); do j=$(basename $i | cut -d. -f1); k=$(grep -IiRn "<$j" src/ | wc -l); echo "$k $i"; done | sort -n
View airports.json
[{"iata":"AAA","name":"Anaa Airport"},{"iata":"AAB","name":"Arrabury Airport"},{"iata":"AAC","name":"El Arish International Airport"},{"iata":"AAE","name":"Annaba Airport"},{"iata":"AAF","name":"Apalachicola Regional Airport"},{"iata":"AAG","name":"Arapoti Airport"},{"iata":"AAH","name":"Aachen-Merzbruck Airport"},{"iata":"AAI","name":"Arraias Airport"},{"iata":"AAJ","name":"Cayana Airstrip"},{"iata":"AAK","name":"Buariki Airport"},{"iata":"AAL","name":"Aalborg Airport"},{"iata":"AAM","name":"Malamala Airport"},{"iata":"AAN","name":"Al Ain International Airport"},{"iata":"AAO","name":"Anaco Airport"},{"iata":"AAQ","name":"Anapa Airport"},{"iata":"AAR","name":"Aarhus Airport"},{"iata":"AAT","name":"Altay Air Base"},{"iata":"AAU","name":"Asau Airport"},{"iata":"AAV","name":"Allah Valley Airport"},{"iata":"AAW","name":"Abbottabad Airport"},{"iata":"AAX","name":"Araxa Airport"},{"iata":"AAY","name":"Al Ghaidah International Airport"},{"iata":"AAZ","name":"Quezaltenango Airport"},{"iata":"ABA","name":"Abakan Airpo
MaffooBristol /
Created Nov 28, 2019
Find all files, sorted by number of lines changed in Git
for i in *; do (git diff -w -U0 $i | wc -l | tr -d '[:space:]') && echo -e " $i"; done | sort -n
MaffooBristol /
Last active Sep 15, 2018
Halo features documentation (WIP)


By Maff 14/09/2018

Features is a method of synchronising Drupal site settings and structure (eg, content types, views, etc) between different instances, such as the live site, dev site and your local copies.

By generating a feature, you select a portion of the site's settings that exist in the database and copy them to code. This is similar to if you were to programatically generate a content type and put it into a module. The features module will take an existing content type generated through the front-end GUI and replicate it using code. This is also similar to what would happen if you choose "export" from views, as well as many other modules that have similar functionality to this. However, this doesn't apply to generated content such as nodes, users, taxonomy terms, menu links, etc. Certain contrib modules can allow you to do this, for example if your content has a UUID (which means it can be versioned), but it tends to be an anti-pattern. Normally this stuff would be generated manual

View index.js
const five = require('johnny-five');
const board = new five.Board();
const opts = {
outputPin: 9,
throttleTimeout: 60,
let timeout = null;
MaffooBristol /
Created Jul 8, 2016
Find the longest code line in your drupal custom codebase
find sites/all/modules/custom/ -type f -iregex ".*\.\(module\|inc\|php\|install\|info\)" -exec wc -L {} \; | sort -t " " -k1 -g
MaffooBristol / hook_commerce_cart_order_convert_test.php
Last active Dec 15, 2015
Example of merging commerce orders/carts with hook_commerce_cart_order_convert()
View hook_commerce_cart_order_convert_test.php
// Thanks to
// for the code on which this is based!
function yourmodule_commerce_cart_order_convert($anon_cart, $account) {
$user_cart = commerce_cart_order_load($account->uid);
if (!$user_cart) {
MaffooBristol /
Created Jun 25, 2015
Find MP3s without a key assigned (such as would be generated by MixedInKey)
find ~/Music/ -name "*.mp3" -exec mdls -raw -name kMDItemKeySignature {} \; -exec echo " : {}" \; | grep 'null'
MaffooBristol / craycray.css
Created May 27, 2014
Cray Cray! The most wacky, crazy, super-mad CSS class... possibly ever?
View craycray.css
body.craycray {
animation: spinright 100s infinite linear;
body.craycray > * {
animation: spinleft 100s infinite linear;
body.craycray > * > * {
animation: spinright 100s infinite linear;
body.craycray > * > * > * {
# Encapsulate our stuff within an app variable.
app = {}
# Define our model- this will mostly just define default values.
app.model = Backbone.Model.extend
coords: {}
sys: {}
weather: {}
# etc