Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/utils/pre-commit
2055 views
#!/bin/bash

# Copy this file into .git/hooks/pre-commit to execute before each commit. 
# It checks and corrects the format for each file.
# If incorrect formatting is found you can add the correction via git add -p

echo "Checking format before committing"

if git ref-parse --verify HEAD >/dev/null 2>&1
then
    against=HEAD
else
    # Initial commit: diff against an empty tree object
    against=280fc57fade28e35046c3e884e587ffef05d3867
fi

# Redirect output to stderr.
exec 1>&2

# Create a list of files to format. 
files=()

for file in `git diff --cached --name-only`
do
    # only indent existing files, this is necessary since if we rename or delete
    # a file it is added to the committed files and we thus would try to indent a
    # nonexisting file.
    if [ ! -e $file ]
    then
        continue
    fi
    # We only indent .jl files
    FILE_ENDING="${file##*.}"
    if [ $FILE_ENDING = "jl" ]
    then
        files+=($file)
    fi
done

julia utils/trixi-format-file.jl "${files[@]}"