Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Move Arora's hooks to the git-hooks format to utilize git-hooks

See: http://github.com/icefox/git-hooks for more details about the tool.
  • Loading branch information...
commit 84098dfc87216b72e9777dd232968a74407e4a38 1 parent 702c146
@icefox icefox authored
View
12 git_hooks/README
@@ -1,9 +1,9 @@
-These are various git hooks that are used to help improve the quality of Arora. Use them if you want. To install them replace the arora/.git/hooks directory with a symlink to this directory.
+These are various git hooks that are used to help improve the quality of Arora.
-cd .git/
-rm -rf .hooks
-ln -s ../git_hooks hooks
+They are managed using the git-hooks tool (Available here http://github.com/icefox/git-hooks)
-TODO:
+To enable them run "git hooks --install"
+
+Some hooks to add:
check for a license in the file commited
-check that the author has a copyright statement in the file they are modifing
+check that the author has a copyright statement in the file they are modifing
View
2  git_hooks/findstyleerrors.sh → git_hooks/helper/findstyleerrors.sh
@@ -32,3 +32,5 @@ grep $options '[a-z]--' $args | grep 'for'
# var *name;
grep $options '[^\* \/]\* ' $args
grep $options '[^& ]& ' $args
+
+exit 0
View
49 git_hooks/pre-commit/compile
@@ -0,0 +1,49 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+function compile {
+ unset GIT_DIR
+ echo "--Attempting to build in $PWD--"
+ if [ -f Makefile ] ; then
+ make --quiet
+ if [ $? != 0 ] ; then
+ echo "--Build failed, fix failure before commiting--";
+ exit 1
+ fi
+ fi
+ echo "--Attempting to build pass--"
+}
+
+case "${1}" in
+ --about )
+ echo "Wherever you are make sure something compiles".
+ ;;
+ * )
+ compile
+ ;;
+esac
View
64 git_hooks/pre-commit/compile_manualtest
@@ -0,0 +1,64 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+dir=`dirname $0`
+
+function test_file {
+ file="${1}"
+ QMAKE=qmake
+ $QMAKE --version 2>&1 | grep 3.3 > /dev/null
+ if [ $? -eq 0 ] ; then
+ QMAKE=qmake-qt4
+ fi
+ file=`echo $file | sed -e 's/src\///g' -e 's/.cpp//g'`
+ if [ ! -d $dir/../autotests/$file ] ; then
+ file=`echo $file | sed -e 's/.*\///g'`;
+ fi
+ if [ -d $dir/../manualtests/$file ] ; then
+ echo "--checking manualtest (should still build): $file--"
+ cd "$dir/../../manualtests/$file/";
+ $QMAKE;
+ make --quiet
+ if [ $? != 0 ] ; then
+ echo "--Manualtest build failed, fix failure before commiting--";
+ exit 1
+ fi
+ echo "--checking manualtest: $file done--"
+ fi
+}
+
+case "${1}" in
+ --about )
+ echo "Check that existing manualtest for files that are being commited still build They can break when the API changes."
+ ;;
+ * )
+ for file in `git diff-index --cached --name-only HEAD | grep .cpp` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
View
47 git_hooks/pre-commit/copyrightyear
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+function test_file {
+ year=`date +%Y`
+ echo "--checking copyright year: $file"
+ grep $year $file >> /dev/null
+ if [ $? -ne 0 ] ; then
+ echo "Warning: $file seems to be missing a copyright string with the year $year in it.";
+ fi
+}
+
+case "${1}" in
+ --about )
+ echo "Check the files that are being committed for a copyright with a proper year."
+ ;;
+ * )
+ for file in `git diff-index --cached --name-only HEAD` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
View
73 git_hooks/pre-commit/run_autotest
@@ -0,0 +1,73 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+dir=`dirname $0`
+
+function test_file {
+ file="${1}"
+ QMAKE=qmake
+ $QMAKE --version 2>&1 | grep 3.3 > /dev/null
+ if [ $? -eq 0 ] ; then
+ QMAKE=qmake-qt4
+ fi
+ unset GIT_DIR
+ file=`echo $file | sed -e 's/src\///g' -e 's/.cpp//g'`
+ autotest=`echo $file | sed -e 's/.*\///g'`
+ if [ ! -d $dir/../autotests/$file ] ; then
+ file=$autotest;
+ fi
+ if [ -d $dir/../autotests/$file ] ; then
+ echo "--checking autotest: $file--"
+
+ tempfoo=`basename $0`
+ TMPFILE=`mktemp -t ${tempfoo}.XXXXXXXXXX` || exit 1
+ (cd "$dir/../../autotests/$file/"; $QMAKE; make --quiet $MAKE_FLAGS; ./$autotest >> $TMPFILE)
+ output=`cat $TMPFILE | grep ' failed,' | sed -e 's/.*passed, //g' -e 's/ failed.*//g'`
+ if [ "${output}" != "0" ] ; then
+ echo "Autotests failed for $file, please fix before committing."
+ cat $TMPFILE
+ rm $TMPFILE
+ exit 1
+ fi
+ rm $TMPFILE
+ echo "--checking autotest: $file done--"
+ else
+ echo "--missing autotest: $file--"
+ fi
+}
+
+case "${1}" in
+ --about )
+ echo "Check that existing autotests for files that are being commited are not currently failing."
+ ;;
+ * )
+ for file in `git diff-index --cached --name-only HEAD | grep .cpp` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
View
64 git_hooks/pre-commit/stylecheck_astyle
@@ -0,0 +1,64 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+function test_file {
+ file="${1}"
+
+ # Something close to our style which is the same as the Qt4 code style
+ #astyle --indent=spaces=4 --brackets=linux --indent-labels --pad=oper --unpad=paren --one-line=keep-statements --convert-tabs --indent-preprocessor `find -type f -name '*.cpp'` `find -type f -name '*.h'`
+
+ echo "--Checking style--"
+ tempfoo=`basename $0`
+ newfile=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1
+ astyle --indent=spaces=4 --brackets=linux --indent-labels --pad=oper --one-line=keep-statements --convert-tabs --indent-preprocessor < $file > $newfile 2>> /dev/null
+ diff "${file}" "${newfile}"
+ r=$?
+ rm "${newfile}"
+ if [ $r != 0 ] ; then
+ echo "Code style error in $file, please fix before commiting."
+ exit 1
+ fi
+ echo "--Checking style pass--"
+}
+
+case "${1}" in
+ --about )
+ echo "Check that the code follows a consistent code style."
+ ;;
+ * )
+ astyle --version 2>> /dev/null
+ if [ $? -eq 127 ] ; then
+ echo "--AStyle not found installed on the system, skiping style check"
+ exit 0;
+ fi
+
+ for file in `git diff-index --cached --name-only HEAD | grep *.cpp` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
View
48 git_hooks/pre-commit/stylecheck_bash
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+# Copyright (c) 2010, Benjamin C. Meyer <ben@meyerhome.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the project nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+dir=`dirname $0`
+
+function test_file {
+ file="${1}"
+ echo "--checking style via bash hack: $file"
+ GITDIR=`git rev-parse --git-dir`
+ cd $GITDIR/../
+ $dir/../helper/findstyleerrors.sh $file
+}
+
+case "${1}" in
+ --about )
+ echo "Check the files that are being commited with the bash grep style checker."
+ ;;
+ * )
+ for file in `git diff-index --cached --name-only HEAD | grep .cpp` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
View
37 git_hooks/pre-commit_autotest
@@ -1,37 +0,0 @@
-#!/bin/bash
-#
-# Check that existing autotests for files that are being commited are not currently failing
-#
-QMAKE=qmake
-$QMAKE --version 2>&1 | grep 3.3 > /dev/null
-if [ $? -eq 0 ] ; then
- QMAKE=qmake-qt4
-fi
-unset GIT_DIR
-dir=`dirname $0`
-for file in `git diff-index --name-only HEAD | grep .cpp` ; do
- file=`echo $file | sed -e 's/src\///g' -e 's/.cpp//g'`
- autotest=`echo $file | sed -e 's/.*\///g'`
- if [ ! -d $dir/../autotests/$file ] ; then
- file=$autotest;
- fi
- if [ -d $dir/../autotests/$file ] ; then
- echo "--checking autotest: $file--"
-
- tempfoo=`basename $0`
- TMPFILE=`mktemp -t ${tempfoo}.XXXXXXXXXX` || exit 1
- (cd "$dir/../../autotests/$file/"; $QMAKE; make --quiet $MAKE_FLAGS; ./$autotest >> $TMPFILE)
- output=`cat $TMPFILE | grep ' failed,' | sed -e 's/.*passed, //g' -e 's/ failed.*//g'`
- if [ "${output}" != "0" ] ; then
- echo "Autotests failed for $file, please fix before committing."
- cat $TMPFILE
- rm $TMPFILE
- exit 1
- fi
- rm $TMPFILE
- echo "--checking autotest: $file done--"
- else
- echo "--missing autotest: $file--"
- fi
-done
-
View
10 git_hooks/pre-commit_bashstylecheck
@@ -1,10 +0,0 @@
-#!/bin/bash
-#
-# Check the files that are being commited with the bash grep style checker
-#
-dir=`dirname $0`
-for file in `git diff-index --name-only HEAD | grep .cpp` ; do
- echo "--checking style via bash hack: $file"
- $dir/findstyleerrors.sh $file
-done
-exit 0
View
16 git_hooks/pre-commit_build
@@ -1,16 +0,0 @@
-#!/bin/sh
-#
-# Wherever you are make sure something builds.
-#
-# Feel free to bypass this if the current commit doesn't match the current state.
-unset GIT_DIR
-echo "--Attempting to build--"
-if [ -f Makefile ] ; then
- make --quiet $MAKE_FLAGS
- if [ $? != 0 ] ; then
- echo "--Build failed, fix failure before commiting--";
- exit 1
- fi
-fi
-echo "--Attempting to build pass--"
-
View
28 git_hooks/pre-commit_checkstyle
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Check that the code follows a consistent code style
-#
-
-astyle --version 2>> /dev/null
-if [ $? -eq 127 ] ; then
- echo "--AStyle not found installed on the system, skiping style check"
- exit 0;
-fi
-
-# Something close to our style which is the same as the Qt4 code style
-#astyle --indent=spaces=4 --brackets=linux --indent-labels --pad=oper --unpad=paren --one-line=keep-statements --convert-tabs --indent-preprocessor `find -type f -name '*.cpp'` `find -type f -name '*.h'`
-
-echo "--Checking style--"
-for file in `git diff-index --name-only HEAD | grep *.cpp` ; do
- tempfoo=`basename $0`
- newfile=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1
- astyle --indent=spaces=4 --brackets=linux --indent-labels --pad=oper --one-line=keep-statements --convert-tabs --indent-preprocessor < $file > $newfile 2>> /dev/null
- diff "${file}" "${newfile}"
- r=$?
- rm "${newfile}"
- if [ $r != 0 ] ; then
- echo "Code style error in $file, please fix before commiting."
- exit 1
- fi
-done
-echo "--Checking style pass--"
View
13 git_hooks/pre-commit_copyrightyear
@@ -1,13 +0,0 @@
-#!/bin/bash
-#
-# Check the files that are being committed for a copyright with a proper year
-#
-year=`date +%Y`
-for file in `git diff-index --name-only HEAD` ; do
- echo "--checking copyright year: $file"
- grep $year $file >> /dev/null
- if [ $? -ne 0 ] ; then
- echo "Warning: $file seems to be missing a copyright string with the year $year in it.";
- fi
-done
-exit 0
View
29 git_hooks/pre-commit_manualtestbuild
@@ -1,29 +0,0 @@
-#!/bin/bash
-#
-# Check that existing manualtest for files that are being commited still build
-# They can break when the API changes
-#
-QMAKE=qmake
-$QMAKE --version 2>&1 | grep 3.3 > /dev/null
-if [ $? -eq 0 ] ; then
- QMAKE=qmake-qt4
-fi
-dir=`dirname $0`
-for file in `git diff-index --name-only HEAD | grep .cpp` ; do
- file=`echo $file | sed -e 's/src\///g' -e 's/.cpp//g'`
- if [ ! -d $dir/../autotests/$file ] ; then
- file=`echo $file | sed -e 's/.*\///g'`;
- fi
- if [ -d $dir/../manualtests/$file ] ; then
- echo "--checking manualtest (should still build): $file--"
- cd "$dir/../../manualtests/$file/";
- $QMAKE;
- make --quiet
- if [ $? != 0 ] ; then
- echo "--Manualtest build failed, fix failure before commiting--";
- exit 1
- fi
- echo "--checking manualtest: $file done--"
- fi
-done
-
Please sign in to comment.
Something went wrong with that request. Please try again.