Add code style script and Dockerfile

This commit is contained in:
Mike Gelfand 2019-02-28 02:01:21 +03:00
parent 3cf3d6a22a
commit 85dba8c70f
4 changed files with 108 additions and 0 deletions

View File

@ -60,3 +60,16 @@ If you're new to building programs from source code, this is typically easier th
$ cmake ..
$ make
$ sudo make install
## Contributing
### Code Style
You would want to setup your editor to make use of uncrustify.cfg and .jsbeautifyrc configuration files located in the root of this repository.
If for some reason you are unwilling or unable to do so, there is a shell script which you could run either directly or via docker-compose:
$ ./code_style.sh
or
$ docker-compose build --pull
$ docker-compose run --rm code_style

78
code_style.sh Executable file
View File

@ -0,0 +1,78 @@
#!/bin/sh
set -euo pipefail
[ -z "${1:-}" ] || cd "$1"
echo '=================='
echo '=== uncrustify ==='
echo '=================='
echo ''
find \
cli \
daemon \
gtk \
libtransmission \
utils \
\( -name '*.c' -o -name '*.h' \) \
! \( -name 'ConvertUTF.*' -o -name 'jsonsl.*' -o -name 'wildmat.c' \) \
-print0 |
xargs \
-0 \
uncrustify \
--replace \
--no-backup \
-c uncrustify.cfg
find \
qt \
\( -name '*.cc' -o -name '*.h' \) \
-print0 |
xargs \
-0 \
uncrustify \
--replace \
--no-backup \
-l CPP \
-c uncrustify.cfg
echo ''
echo '================================================================='
echo '=== const placement (until uncrustify supports it, hopefully) ==='
echo '================================================================='
echo ''
find \
cli \
daemon \
gtk \
libtransmission \
qt \
utils \
\( -name '*.c' -o -name '*.cc' -o -name '*.h' \) \
! \( -name 'ConvertUTF.*' -o -name 'jsonsl.*' -o -name 'wildmat.c' \) \
-print0 |
xargs \
-0 \
-n1 \
perl \
-pi \
-e 'BEGIN { print STDOUT "Processing: ${ARGV[0]}\n" } s/((?:^|[(,;]|\bstatic\s+)\s*)\b(const)\b(?!\s+\w+\s*\[)/\1>\2</g'
echo ''
echo '==================='
echo '=== js-beautify ==='
echo '==================='
echo ''
find \
web \
! -path '*/jquery/*' \
-name '*.js' \
-print0 |
xargs \
-0 \
js-beautify \
--config .jsbeautifyrc \
--replace

9
docker-compose.yml Normal file
View File

@ -0,0 +1,9 @@
version: '3'
services:
code_style:
build: docker/code_style
volumes:
- .:/src
- ./code_style.sh:/code_style.sh:ro
command: ["/bin/sh", "/code_style.sh", "/src"]

View File

@ -0,0 +1,8 @@
FROM alpine
RUN apk add --no-cache \
npm \
perl \
uncrustify \
&& npm install -g \
js-beautify