File: codemod.sh

package info (click to toggle)
aws-crt-python 0.20.4%2Bdfsg-1~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 72,656 kB
  • sloc: ansic: 381,805; python: 23,008; makefile: 6,251; sh: 4,536; cpp: 699; ruby: 208; java: 77; perl: 73; javascript: 46; xml: 11
file content (116 lines) | stat: -rwxr-xr-x 3,468 bytes parent folder | download | duplicates (3)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env bash

# Idempotently applies a codemod script to update safety macro calls to include the
# context in which they're used.

set -e

SCRIPT_DIR=scripts/s2n_safety_explicit_context

if [ ! -d $SCRIPT_DIR/.venv ]; then
  python3 -m venv $SCRIPT_DIR/.venv
fi

source $SCRIPT_DIR/.venv/bin/activate
pip install -r $SCRIPT_DIR/requirements.txt

set -x

function join { local IFS=","; echo "$*"; }

IGNORES=$(
    join \
        api \
        cmake \
        codebuild \
        coverage \
        docker-images \
        docs \
        error \
        lib \
        libcrypto-build \
        libcrypto-root \
        scram \
        scripts \
        utils/s2n_safety.h \
        utils/s2n_safety_macros.h \
)

function mod {
  codemod \
    --exclude-paths $IGNORES \
    --extensions c,h,patch \
    "$1" "$2"
}

function map {
  mod "( +)$1 *\(" "\1$2("
  mod "^$1 *\(" "$2("
}

# PTR
map BAIL_PTR               PTR_BAIL
map S2N_ERROR_PTR          PTR_BAIL
map ENSURE_PTR             PTR_ENSURE
map ENSURE_REF_PTR         PTR_ENSURE_REF
map ENSURE_MUT_PTR         PTR_ENSURE_MUT
map GUARD_PTR              PTR_GUARD_POSIX
map GUARD_POSIX_PTR        PTR_GUARD_POSIX
map GUARD_NONNULL_PTR      PTR_GUARD_NONNULL
map GUARD_RESULT_PTR       PTR_GUARD_RESULT
map notnull_check_ptr      PTR_ENSURE_REF

# POSIX
map BAIL_POSIX             POSIX_BAIL
map S2N_ERROR              POSIX_BAIL
map ENSURE_POSIX           POSIX_ENSURE
map ENSURE_POSIX_REF       POSIX_ENSURE_REF
map ENSURE_POSIX_MUT       POSIX_ENSURE_MUT
map notnull_check          POSIX_ENSURE_REF
map PRECONDITION_POSIX     POSIX_PRECONDITION
map POSTCONDITION_POSIX    POSIX_POSTCONDITION
map GUARD                  POSIX_GUARD
map GUARD_NONNULL          POSIX_GUARD_PTR
map GUARD_POSIX_NONNULL    POSIX_GUARD_PTR
map GUARD_OSSL             POSIX_GUARD_OSSL
map GUARD_POSIX_OSSL       POSIX_GUARD_OSSL
map GUARD_AS_POSIX         POSIX_GUARD_RESULT
map GUARD_POSIX            POSIX_GUARD
map GUARD_POSIX_STRICT     POSIX_GUARD_STRICT
map gte_check              POSIX_ENSURE_GTE
map lte_check              POSIX_ENSURE_LTE
map gt_check               POSIX_ENSURE_GT
map lt_check               POSIX_ENSURE_LT
map eq_check               POSIX_ENSURE_EQ
map ne_check               POSIX_ENSURE_NE
map inclusive_range_check  POSIX_ENSURE_INCLUSIVE_RANGE
map exclusive_range_check  POSIX_ENSURE_EXCLUSIVE_RANGE
map memcpy_check           POSIX_CHECKED_MEMCPY
map memset_check           POSIX_CHECKED_MEMSET

# GOTO
map GUARD_GOTO             GOTO_GUARD_POSIX
map GUARD_POSIX_GOTO       GOTO_GUARD_POSIX
map GUARD_NONNULL_GOTO     GOTO_GUARD_PTR
map GUARD_RESULT_GOTO      GOTO_GUARD_RESULT

# s2n_result
map GUARD_RESULT           RESULT_GUARD
map GUARD_AS_RESULT        RESULT_GUARD_POSIX
map GUARD_RESULT_PTR       RESULT_GUARD_PTR
map GUARD_RESULT_OSSL      RESULT_GUARD_OSSL
map ENSURE                 RESULT_ENSURE
map ENSURE_REF             RESULT_ENSURE_REF
map ENSURE_MUT             RESULT_ENSURE_MUT
map ENSURE_GTE             RESULT_ENSURE_GTE
map ENSURE_LTE             RESULT_ENSURE_LTE
map ENSURE_GT              RESULT_ENSURE_GT
map ENSURE_LT              RESULT_ENSURE_LT
map ENSURE_NE              RESULT_ENSURE_NE
map ENSURE_EQ              RESULT_ENSURE_EQ
map ENSURE_OK              RESULT_ENSURE_OK
map DEBUG_ENSURE           RESULT_DEBUG_ENSURE
map BAIL                   RESULT_BAIL
map CHECKED_MEMCPY         RESULT_CHECKED_MEMCPY
map CHECKED_MEMSET         RESULT_CHECKED_MEMSET