summaryrefslogtreecommitdiff
path: root/other/astyle/format-source
blob: 245fd8cd18be85d6b8b99952e85581e2d08e81f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh

set -ex

SOURCE_DIR="$1"
ASTYLE="$2"
APIDSL="$3"

# Go to the source root.
if [ -z "$SOURCE_DIR" ]; then
  SOURCE_DIR=.
fi
cd "$SOURCE_DIR"

if [ -z "$ASTYLE" ] || ! which "$ASTYLE"; then
  ASTYLE=astyle
fi

if ! which "$ASTYLE"; then
  # If we couldn't find or install an astyle binary, don't do anything.
  echo "Could not find an astyle binary; please install astyle."
  exit 1
fi

if ! which "$APIDSL"; then
  if [ -f ../apidsl/apigen.native ]; then
    APIDSL=../apidsl/apigen.native
  else
    APIDSL=apidsl_curl
  fi
fi

apidsl_curl() {
  curl -X POST --data-binary @"$1" https://apidsl.herokuapp.com/apidsl
}

# Check if apidsl generated sources are up to date.
$APIDSL toxcore/crypto_core.api.h > toxcore/crypto_core.h &
$APIDSL toxcore/ping.api.h > toxcore/ping.h &
$APIDSL toxcore/ping_array.api.h > toxcore/ping_array.h &
$APIDSL toxcore/tox.api.h > toxcore/tox.h &
$APIDSL toxav/toxav.api.h > toxav/toxav.h &
$APIDSL toxencryptsave/toxencryptsave.api.h > toxencryptsave/toxencryptsave.h &

wait; wait; wait; wait; wait; wait

if grep '<unresolved>' */*.h; then
  echo "error: some apidsl references were unresolved"
  exit 1
fi

CC_SOURCES=`find . '(' -name '*.cc' ')'`
CC_SOURCES="$CC_SOURCES toxcore/crypto_core.c"
CC_SOURCES="$CC_SOURCES toxcore/ping_array.c"

for bin in clang-format-6.0 clang-format-5.0 clang-format; do
  if which "$bin"; then
    "$bin" -i -style='{BasedOnStyle: Google, ColumnLimit: 100}' $CC_SOURCES
    break
  fi
done

FIND="find ."
FIND="$FIND '(' -name '*.[ch]' ')'"
FIND="$FIND -and -not -name '*.api.h'"
FIND="$FIND -and -not -wholename './super_donators/*'"
FIND="$FIND -and -not -wholename './third_party/*'"
FIND="$FIND -and -not -wholename './toxencryptsave/crypto_pwhash*'"

C_SOURCES=`eval "$FIND"`

$ASTYLE -n --options=other/astyle/astylerc $C_SOURCES

git diff --exit-code