commit 283991656b635756e29085739efdf7e36f77ca2e Author: Sam Perry Date: Mon Nov 21 18:14:01 2016 +0000 Initial commit diff --git a/.git-hooks/pre-commit/check_untracked.py b/.git-hooks/pre-commit/check_untracked.py new file mode 100755 index 0000000..8f06f93 --- /dev/null +++ b/.git-hooks/pre-commit/check_untracked.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +import subprocess +import os +import pdb +import fnmatch + +import sys + +def main(): + p = subprocess.Popen(["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + + out = out.strip('\n') + track_filepath = os.path.join(out, ".gittrack") + + p = subprocess.Popen(["git", "ls-files", out, "--exclude-standard", "--others"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + + out = out.splitlines() + + try: + with open(track_filepath) as f: + content = f.read().splitlines() + except IOError: + return 0 + + + untracked = [] + for filepath in out: + for name in content: + if fnmatch.fnmatch(filepath, name): + untracked.append(filepath) + + if untracked: + print "The following files are not tracked: " + for i in untracked: + print i + print "Please either stage these files for the commit or add them to the project's .gitignore to disregard them." + return 1 + else: + return 0 + + + +if __name__ == "__main__": + exit(main()) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2934343 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +.DS_Store +bin/ +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Log files +*.log + +external/ +CMakeFiles/ diff --git a/.gittrack b/.gittrack new file mode 100644 index 0000000..e69de29 diff --git a/.overcommit.yml b/.overcommit.yml new file mode 100644 index 0000000..f0b94ee --- /dev/null +++ b/.overcommit.yml @@ -0,0 +1,41 @@ +# Use this file to configure the Overcommit hooks you wish to use. This will +# extend the default configuration defined in: +# https://github.com/brigade/overcommit/blob/master/config/default.yml +# +# At the topmost level of this YAML file is a key representing type of hook +# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can +# customize each hook, such as whether to only run it on certain files (via +# `include`), whether to only display output if it fails (via `quiet`), etc. +# +# For a complete list of hooks, see: +# https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook +# +# For a complete list of options that you can use to customize hooks, see: +# https://github.com/brigade/overcommit#configuration +# +# Uncomment the following lines to make the configuration take effect. + +#PreCommit: +# RuboCop: +# enabled: true +# on_warn: fail # Treat all warnings as failures +# +# TrailingWhitespace: +# enabled: true +# exclude: +# - '**/db/structure.sql' # Ignore trailing whitespace in generated files +# +#PostCheckout: +# ALL: # Special hook name that customizes all hooks of this type +# quiet: true # Change all post-checkout hooks to only display output on failure +# +# IndexTags: +# enabled: true # Generate a tags file with `ctags` each time HEAD changes + + +PreCommit: + CheckUntracked: + enabled: true + quiet: false + description: 'Check for files that should be tracked or ignored.' + required_executable: './.git-hooks/pre-commit/check_untracked.py'