Merge pull request #850 from transmission/code-style-script

Add code style script and Dockerfile
This commit is contained in:
Mike Gelfand 2019-03-03 01:13:20 +03:00 committed by GitHub
commit 62e4e4a373
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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