diff options
-rw-r--r-- | Makefile.am | 4 | ||||
-rwxr-xr-x | bootstrap | 28 | ||||
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | contrib/uncrustify.cfg | 78 | ||||
-rwxr-xr-x | contrib/uncrustify_precommit | 35 |
5 files changed, 146 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am index fa7a678..77d2bfa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1,5 @@ SUBDIRS = src doc . + +EXTRA_DIST = \ + contrib/uncrustify.cfg \ + contrib/uncrustify_precommit diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..79eadd6 --- /dev/null +++ b/bootstrap @@ -0,0 +1,28 @@ +#!/bin/sh + +if ! git --version >/dev/null; then + echo "git not installed" + exit 1 +fi + +# git submodule update --init + +# This is more portable than `which' but comes with +# the caveat of not(?) properly working on busybox's ash: +existence() +{ + command -v "$1" >/dev/null 2>&1 +} + + +if existence uncrustify; then + echo "Installing uncrustify hook and configuration" + # Install uncrustify format symlink (if possible) + ln -s contrib/uncrustify.cfg uncrustify.cfg 2> /dev/null + # Install pre-commit hook (if possible) + ln -s ../../contrib/uncrustify_precommit .git/hooks/pre-commit 2> /dev/null +else + echo "Uncrustify not detected, hook not installed. Please install uncrustify if you plan on doing development" +fi + +autoreconf -fi diff --git a/configure.ac b/configure.ac index c6415a7..c10bfe4 100644 --- a/configure.ac +++ b/configure.ac @@ -11,10 +11,7 @@ AM_INIT_AUTOMAKE AC_PROG_CC # Checks for libraries. -# FIXME: Replace `main' with a function in `-lcurl': -AC_CHECK_LIB([curl], [main]) -# FIXME: Replace `main' with a function in `-lnfc': -AC_CHECK_LIB([nfc], [main]) +AC_CHECK_LIB([nfc], [nfc_open]) # Checks for header files. AC_CHECK_HEADERS([stdlib.h string.h unistd.h]) diff --git a/contrib/uncrustify.cfg b/contrib/uncrustify.cfg new file mode 100644 index 0000000..f56c8e7 --- /dev/null +++ b/contrib/uncrustify.cfg @@ -0,0 +1,78 @@ +input_tab_size = 2 +output_tab_size = 2 + +indent_columns = 2 +indent_with_tabs = 0 +indent_case_brace = 2 +indent_label=-16 + +code_width=80 +#cmd_width=80 + +# Leave most comments alone for now +cmt_indent_multi=false +sp_cmt_cpp_start=add + +sp_not=add + +sp_func_call_user_paren_paren=remove +sp_inside_fparen=remove +sp_after_cast=add + +ls_for_split_full=true +ls_func_split_full=true +ls_code_width=true + +# Arithmetic operations in wrapped expressions should be at the start +# of the line. +pos_arith=lead + +# Fully parenthesize boolean exprs +mod_full_paren_if_bool=true + +# Braces should be on their own line +nl_fdef_brace=add +nl_enum_brace=add +nl_struct_brace=add +nl_union_brace=add +nl_if_brace=add +nl_brace_else=add +nl_elseif_brace=add +nl_while_brace=add +nl_switch_brace=add + +# no newline between "else" and "if" +nl_else_if=remove + +nl_func_paren=remove +nl_assign_brace=remove + +# No extra newlines that cause noisy diffs +nl_start_of_file=remove +# If there's no new line, it's not a text file! +nl_end_of_file=add + +sp_inside_paren = remove + +sp_arith = add +sp_arith_additive = add + +# We want spaces before and after "=" +sp_before_assign = add +sp_after_assign = add + +# we want "char *foo;" +sp_after_ptr_star = remove +sp_between_ptr_star = remove + +# we want "if (foo) { ... }" +sp_before_sparen = add + +sp_inside_fparen = remove + +# add space before function call and decl: "foo (x)" +sp_func_call_paren = add +sp_func_proto_paren = add +sp_func_proto_paren_empty = add +sp_func_def_paren = add +sp_func_def_paren_empty = add diff --git a/contrib/uncrustify_precommit b/contrib/uncrustify_precommit new file mode 100755 index 0000000..fd29998 --- /dev/null +++ b/contrib/uncrustify_precommit @@ -0,0 +1,35 @@ +#!/bin/sh + +# use as .git/hooks/pre-commit + +exec 1>&2 + +RET=0 +changed=$(git diff --cached --name-only) +crustified="" + +for f in $changed; +do + if echo $f | grep \\.[c,h]\$ > /dev/null + then + # compare result of uncrustify with changes + # + # only change any of the invocations here if + # they are portable across all cmp and shell + # implementations ! + uncrustify -q -c uncrustify.cfg -f $f | cmp -s $f - + if test $? = 1 ; + then + crustified=" $crustified $f" + RET=1 + fi + fi +done + +if [ $RET = 1 ]; +then + echo "Run" + echo "uncrustify --no-backup -c uncrustify.cfg ${crustified}" + echo "before commiting." +fi +exit $RET |