Add check-added-large-files hook
diff --git a/pre_commit_hooks/check_added_large_files.py b/pre_commit_hooks/check_added_large_files.py
new file mode 100644
index 0000000..999e9c1
--- /dev/null
+++ b/pre_commit_hooks/check_added_large_files.py
@@ -0,0 +1,49 @@
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
+
+import argparse
+import math
+import os
+import sys
+
+from plumbum import local
+
+
+def find_large_added_files(filenames, maxkb):
+    # Find all added files that are also in the list of files pre-commit tells
+    # us about
+    filenames = set(local['git'](
+        'diff', '--staged', '--name-only', '--diff-filter', 'A',
+    ).splitlines()) & set(filenames)
+
+    retv = 0
+    for filename in filenames:
+        kb = int(math.ceil(os.stat(filename).st_size / 1024))
+        if kb > maxkb:
+            print('{0} ({1} KB) exceeds {2} KB.'.format(filename, kb, maxkb))
+            retv = 1
+
+    return retv
+
+
+def main(argv=None):
+    argv = argv if argv is not None else sys.argv[1:]
+
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        'filenames', nargs='*',
+        help='Filenames pre-commit believes are changed.'
+    )
+    parser.add_argument(
+        '--maxkb', type=int, default=500,
+        help='Maxmimum allowable KB for added files',
+    )
+
+    args = parser.parse_args(argv)
+    return find_large_added_files(args.filenames, args.maxkb)
+
+
+if __name__ == '__main__':
+    exit(main())