Skip to content
Snippets Groups Projects
Commit 2a294e7c authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

Merge pull request #36 from bilke/pre-commit-checks

Enables configuration of uncrustify pre-commit-check.

Uncrustify is a source code beautifier. Enabling this via scripts/init.sh runs uncrustify before commit on the changed files and *suggests* changes to the code to be conform with the style guide.

This should enforce a common code style and reduce number of white-space changes and also improve the readability of the code.
parents 80d95361 5ded733f
No related branches found
No related tags found
No related merge requests found
# Enable style checks on source files
*.h hooks.style=uncrustify
*.cpp hooks.style=uncrustify
*.hpp hooks.style=uncrustify
# Get script directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DIR=$SCRIPT_DIR/..
source $SCRIPT_DIR/base/download_file_with_cmake.sh
### Init git hooks ###
# Check for uncrustify
UNCRUSTIFY_LOCATION=`which uncrustify`
if [ -z "$UNCRUSTIFY_LOCATION" ]; then
if [ "$OSTYPE" == 'msys' ]; then
mkdir -vp ~/bin
export PATH=$PATH:~/bin
download_file http://sourceforge.net/projects/uncrustify/files/uncrustify/uncrustify-0.59/uncrustify-0.59-win32.zip/download ./uncrustify-0.59-win32.zip
7za x uncrustify-0.59-win32.zip
mv uncrustify-0.59-win32/uncrustify.exe ~/bin
rm -r uncrustify-0.59-win32*
if [ ! -f ~/bin/uncrustify.exe ]; then
echo "Error downloading uncrustify! Git hooks not set."
else
UNCRUSTIFY_LOCATION=~/bin/uncrustify.exe
fi
else
echo "Please install uncrustify (http://uncrustify.sourceforge.net) to setup git hooks."
exit 1
fi
fi
cd $DIR
# Enable git hooks
# Does not work on Windows at the moment
if [ ! "$OSTYPE" == 'msys' ]; then
cd .git/hooks
git init
cd ../..
git fetch origin
cd .git/hooks
git pull .. remotes/origin/hooks
cd $DIR
# Set git configs for running uncrustify
git config --add --bool hooks.uncrustify true
git config hooks.uncrustify.path $UNCRUSTIFY_LOCATION
git config hooks.uncrustify.conf $SCRIPT_DIR/style/uncrustify.cfg
fi
indent_align_string=false
indent_braces=false
indent_braces_no_func=false
indent_brace_parent=false
indent_namespace=false
indent_extern=false
indent_class=true
indent_class_colon=true
indent_else_if=false
indent_func_call_param=false
indent_func_def_param=false
indent_func_proto_param=false
indent_func_class_param=false
indent_func_ctor_var_param=false
indent_template_param=false
indent_func_param_double=false
indent_relative_single_line_comments=false
indent_col1_comment=false
indent_access_spec_body=false
indent_paren_nl=false
indent_comma_paren=false
indent_bool_paren=false
indent_square_nl=false
indent_preserve_sql=false
indent_align_assign=true
sp_balance_nested_parens=false
align_keep_tabs=false
align_with_tabs=false
align_on_tabstop=false
align_number_left=false
align_func_params=false
align_same_func_call_params=false
align_var_def_colon=false
align_var_def_attribute=false
align_var_def_inline=false
align_right_cmt_mix=false
align_on_operator=false
align_mix_var_proto=false
align_single_line_func=false
align_single_line_brace=false
align_nl_cont=false
align_left_shift=true
nl_collapse_empty_body=false
nl_assign_leave_one_liners=false
nl_class_leave_one_liners=true
nl_enum_leave_one_liners=true
nl_getset_leave_one_liners=true
nl_func_leave_one_liners=true
nl_if_leave_one_liners=false
nl_multi_line_cond=false
nl_multi_line_define=false
nl_before_case=false
nl_after_case=false
nl_after_return=false
nl_after_semicolon=true
nl_after_brace_open=false
nl_after_brace_open_cmt=false
nl_after_vbrace_open=false
nl_after_brace_close=false
nl_define_macro=false
nl_squeeze_ifdef=false
nl_ds_struct_enum_cmt=false
nl_ds_struct_enum_close_brace=false
nl_create_if_one_liner=false
nl_create_for_one_liner=false
nl_create_while_one_liner=false
ls_for_split_full=false
ls_func_split_full=true
nl_after_multiline_comment=false
eat_blanks_after_open_brace=true
eat_blanks_before_close_brace=true
mod_pawn_semicolon=false
mod_full_paren_if_bool=false
mod_remove_extra_semicolon=true
mod_sort_import=false
mod_sort_using=false
mod_sort_include=true
mod_move_case_break=false
mod_remove_empty_return=true
cmt_indent_multi=true
cmt_c_group=false
cmt_c_nl_start=false
cmt_c_nl_end=false
cmt_cpp_group=false
cmt_cpp_nl_start=false
cmt_cpp_nl_end=false
cmt_cpp_to_c=false
cmt_star_cont=false
cmt_multi_check_last=true
cmt_insert_before_preproc=false
pp_indent_at_level=false
pp_region_indent_code=false
pp_if_indent_code=false
pp_define_at_level=false
input_tab_size=4
code_width=100
nl_max=2
mod_add_long_ifdef_else_comment=10
indent_with_tabs=1
sp_arith=add
sp_assign=add
sp_enum_assign=add
sp_bool=add
sp_compare=add
sp_before_ptr_star=remove
sp_after_ptr_star=add
nl_end_of_file=add
nl_struct_brace=add
nl_if_brace=add
nl_brace_else=add
nl_elseif_brace=add
nl_else_brace=add
nl_for_brace=add
nl_while_brace=add
nl_switch_brace=add
nl_namespace_brace=add
nl_class_brace=add
nl_fdef_brace=add
mod_full_brace_for=remove
mod_full_brace_if=remove
mod_full_brace_while=remove
mod_paren_on_return=remove
pp_indent=remove
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment