xref: /aosp_15_r20/external/iptables/extensions/gen_init (revision a71a954618bbadd4a345637e5edcf36eec826889)
1*a71a9546SAutomerger Merge Worker#!/bin/bash -e
2*a71a9546SAutomerger Merge Worker#
3*a71a9546SAutomerger Merge Worker# Generate init_extensions* functions to call all the _init functions from
4*a71a9546SAutomerger Merge Worker# filter_init
5*a71a9546SAutomerger Merge Worker#
6*a71a9546SAutomerger Merge Worker# Usage: gen_init <suffix> filename...
7*a71a9546SAutomerger Merge Worker#
8*a71a9546SAutomerger Merge Worker# Example output:
9*a71a9546SAutomerger Merge Worker#
10*a71a9546SAutomerger Merge Worker#   void libxt_tcp_init(void);
11*a71a9546SAutomerger Merge Worker#   void libxt_udp_init(void);
12*a71a9546SAutomerger Merge Worker#   void init_extensions(void);
13*a71a9546SAutomerger Merge Worker#   void init_extensions(void) {
14*a71a9546SAutomerger Merge Worker#     libxt_tcp_init();
15*a71a9546SAutomerger Merge Worker#     libxt_udp_init();
16*a71a9546SAutomerger Merge Worker#   }
17*a71a9546SAutomerger Merge Worker
18*a71a9546SAutomerger Merge WorkerEXT=$1
19*a71a9546SAutomerger Merge Workershift
20*a71a9546SAutomerger Merge Worker
21*a71a9546SAutomerger Merge Workerfor i in "$@"; do
22*a71a9546SAutomerger Merge Worker  f=${i##*/}
23*a71a9546SAutomerger Merge Worker  f=${f%%.*}
24*a71a9546SAutomerger Merge Worker  echo "void ${f}_init(void);"
25*a71a9546SAutomerger Merge Workerdone
26*a71a9546SAutomerger Merge Worker
27*a71a9546SAutomerger Merge Workerecho "void init_extensions${EXT}(void);"
28*a71a9546SAutomerger Merge Workerecho "void init_extensions${EXT}(void) {"
29*a71a9546SAutomerger Merge Worker
30*a71a9546SAutomerger Merge Workerfor i in "$@"; do
31*a71a9546SAutomerger Merge Worker  f=${i##*/}
32*a71a9546SAutomerger Merge Worker  f=${f%%.*}
33*a71a9546SAutomerger Merge Worker  echo "  ${f}_init();"
34*a71a9546SAutomerger Merge Workerdone
35*a71a9546SAutomerger Merge Worker
36*a71a9546SAutomerger Merge Workerecho "}"
37