Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Thanassis Tsiodras
spell-check-example
Commits
1a46d4aa
Commit
1a46d4aa
authored
Oct 29, 2019
by
Thanassis Tsiodras
Browse files
Initial.
parents
Changes
3
Hide whitespace changes
Inline
Side-by-side
README
0 → 100644
View file @
1a46d4aa
Example repo to test spell checking.
Place the pre-commit file in your .git/hooks and make sure it is executable.
Also, install aspell!
custom.dict
0 → 100644
View file @
1a46d4aa
RTEMS
SMP
pre-commit
0 → 100755
View file @
1a46d4aa
#!/bin/bash
set
-e
RED
=
'\033[0;31m'
YELLOW
=
'\033[0;33m'
NC
=
'\033[0m'
# No Color
# This script is a Git pre-commit hook that spell checks any content you are
# about to commit.
#
# Place this script into the ".git/hooks/" directory in your repository.
# It must be called "pre-commit" and be executable. A Git hook only works in a
# single repository. You need to copy this hook into every repository you wish
# to use it in manually. Optionally, you can set up a symlink in the
# ".git/hooks/" directory pointing to the script.
#
# Each time you try to commit something, this script is run and spell checks
# the content you are committing.
#
# Should you want to bypass the pre-commit hook (though not recommended), you
# can commit with "git commit --no-verify".
# The temporary dictionary (a binary file) created from the dict
# text file. It is deleted after the script finishes.
temp_dict
=
$(
mktemp
/tmp/docs-dictionary-XXXXXX
)
# Language of your doc. When using a non-English language, make sure you have
# the appropriate aspell libraries installed: "yum search aspell". For example,
# to spell check in Slovak, you must have the aspell-sk package installed.
lang
=
en
# Clean up if script is interrupted or terminated.
trap
"cleanup"
SIGINT SIGTERM
# Prepares the dictionary from scratch in case new words were added since last time.
function
prepare_dictionary
()
{
if
[
0
-eq
$(
find
.
-name
*
.dict |
wc
-l
)
]
;
then
echo
"
${
RED
}
Failed to find *.dict file in the repo (no custom dictionary)
${
NC
}
"
exit
1
else
temp_file
=
$(
mktemp
/tmp/temp_file-XXXXXX
)
find
.
-name
*
.dict
-exec
cat
'{}'
\;
|
sort
-u
>
"
$temp_file
"
aspell
--lang
=
"
$lang
"
create master
"
$temp_dict
"
<
"
$temp_file
"
/bin/rm
-f
"
$temp_file
"
fi
}
# Removes the temporary dictionary.
function
cleanup
()
{
/bin/rm
-f
"
$temp_dict
"
}
# Spell checks content you're about to commit. Writes out words that are
# misspelled or exits with 0 (i.e. continues with commit).
function
spell_check
()
{
find
.
-name
'*.rst'
|
while
read
SRC
;
do
output
=
$(
cat
"
$SRC
"
| aspell list
--lang
=
"
$lang
"
--extra-dicts
=
"
$temp_dict
"
)
if
[[
$?
!=
0
]]
;
then
echo
"
${
RED
}
Failed spell check on
$SRC
...
${
NC
}
"
echo
"Please check with: aspell -c
$SRC
"
exit
1
elif
[[
$output
]]
;
then
echo
-e
"->
${
RED
}
Spelling errors found
${
NC
}
<-"
echo
-e
"
${
YELLOW
}
$output
${
NC
}
"
|sort
-u
echo
"Please check with: aspell -c
$SRC
"
exit
1
fi
done
}
prepare_dictionary
spell_check
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment