Skip to content

Instantly share code, notes, and snippets.

@danrspencer
danrspencer / delete_unused_files.sh
Last active April 4, 2017 15:40
Delete unused files in a static website
#!/usr/bin/env bash
TEMP="./tmp"
REGEX="img\/[^>]+?(\"|\)|'| )"
ROOTPATH="./public"
PATH_TO_CLEAN="./public/img"
egrep -iowhr "$REGEX" * | rev | cut -c 2-1000 | rev | xargs -I {} sh -c "mkdir -p $TEMP/{} && rm -r $TEMP/{} && cp $ROOTPATH/{} $TEMP/{}"
@danrspencer
danrspencer / validateAgainstSchema.php
Last active April 29, 2021 06:43
Validate a PHP array against a schema to ensure all desired keys are present (supports nested)
function validateAgainstSchema(array $schema, $data) {
$valid = true;
$done = false;
$path = "";
$current = each($schema);
while($valid !== false && $current !== false) {
list($key, $value) = $current;
@danrspencer
danrspencer / create_git_undo.sh
Created August 25, 2016 13:08
Setup Git undo alias
#!/bin/bash
# Credit to: http://megakemp.com/2016/08/25/git-undo/
git config --global alias.undo '!f() { \
git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; \
}; f'
@danrspencer
danrspencer / sizeOf.js
Last active August 15, 2016 14:08
Get in memory size of a JavaScript value/object
const typeSizes = {
'boolean': () => 4,
'number': () => 8,
'string': (item) => 2 * item.length,
'object': (item) => Object.keys(item).reduce(
(sum, key) => sum + sizeOf(key) + sizeOf(item[key]), 0
)
};
export default const sizeOf = (value) => typeSizes[typeof value](value);