xref: /aosp_15_r20/external/libnl/tools/clang-format.sh (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker#!/bin/bash
2*4dc78e53SAndroid Build Coastguard Worker
3*4dc78e53SAndroid Build Coastguard Workerset -e
4*4dc78e53SAndroid Build Coastguard Worker
5*4dc78e53SAndroid Build Coastguard Workerdie() {
6*4dc78e53SAndroid Build Coastguard Worker    printf '%s\n' "$*" >&2
7*4dc78e53SAndroid Build Coastguard Worker    exit 1
8*4dc78e53SAndroid Build Coastguard Worker}
9*4dc78e53SAndroid Build Coastguard Worker
10*4dc78e53SAndroid Build Coastguard WorkerEXCLUDE_PATHS_TOPLEVEL=(
11*4dc78e53SAndroid Build Coastguard Worker    "include/linux-private"
12*4dc78e53SAndroid Build Coastguard Worker)
13*4dc78e53SAndroid Build Coastguard Worker
14*4dc78e53SAndroid Build Coastguard Worker# The following files are currently not formatted with clang.
15*4dc78e53SAndroid Build Coastguard Worker# Exclude them too.
16*4dc78e53SAndroid Build Coastguard WorkerEXCLUDE_PATHS_TOPLEVEL+=(
17*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/addr.h"
18*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/attr.h"
19*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cache-api.h"
20*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cache.h"
21*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/addr.h"
22*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/cls.h"
23*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/link.h"
24*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/mdb.h"
25*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/neigh.h"
26*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/qdisc.h"
27*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/route.h"
28*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/tc.h"
29*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/cli/utils.h"
30*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/data.h"
31*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/errno.h"
32*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/fib_lookup/lookup.h"
33*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/fib_lookup/request.h"
34*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/genl/ctrl.h"
35*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/genl/family.h"
36*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/genl/genl.h"
37*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/genl/mngt.h"
38*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/handlers.h"
39*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/hash.h"
40*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/hashtable.h"
41*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/idiag/idiagnl.h"
42*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/idiag/meminfo.h"
43*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/idiag/msg.h"
44*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/idiag/req.h"
45*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/idiag/vegasinfo.h"
46*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/list.h"
47*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/msg.h"
48*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/ct.h"
49*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/exp.h"
50*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/log.h"
51*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/log_msg.h"
52*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/netfilter.h"
53*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/nfnl.h"
54*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/queue.h"
55*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netfilter/queue_msg.h"
56*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netlink-compat.h"
57*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netlink-kernel.h"
58*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/netlink.h"
59*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/object.h"
60*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/act/skbedit.h"
61*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/action.h"
62*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/addr.h"
63*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/class.h"
64*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/classifier.h"
65*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/basic.h"
66*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/cgroup.h"
67*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/ematch.h"
68*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/ematch/cmp.h"
69*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/ematch/meta.h"
70*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/ematch/nbyte.h"
71*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/ematch/text.h"
72*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/flower.h"
73*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/fw.h"
74*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/matchall.h"
75*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/police.h"
76*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/cls/u32.h"
77*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link.h"
78*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/api.h"
79*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/bonding.h"
80*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/bridge.h"
81*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/can.h"
82*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/geneve.h"
83*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/inet.h"
84*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/inet6.h"
85*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/info-api.h"
86*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ip6gre.h"
87*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ip6tnl.h"
88*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ip6vti.h"
89*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ipgre.h"
90*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ipip.h"
91*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ipvlan.h"
92*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ipvti.h"
93*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/macsec.h"
94*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/macvlan.h"
95*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/macvtap.h"
96*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/ppp.h"
97*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/sit.h"
98*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/sriov.h"
99*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/team.h"
100*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/vlan.h"
101*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/vxlan.h"
102*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/link/xfrmi.h"
103*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/mdb.h"
104*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/neighbour.h"
105*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/neightbl.h"
106*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/netconf.h"
107*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/nexthop.h"
108*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/pktloc.h"
109*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc.h"
110*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/cbq.h"
111*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/dsmark.h"
112*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/fifo.h"
113*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/fq_codel.h"
114*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/hfsc.h"
115*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/htb.h"
116*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/mqprio.h"
117*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/netem.h"
118*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/plug.h"
119*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/prio.h"
120*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/red.h"
121*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/qdisc/sfq.h"
122*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/route.h"
123*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/rtnl.h"
124*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/rule.h"
125*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/tc-api.h"
126*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/route/tc.h"
127*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/socket.h"
128*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/types.h"
129*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/utils.h"
130*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/ae.h"
131*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/lifetime.h"
132*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/sa.h"
133*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/selector.h"
134*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/sp.h"
135*4dc78e53SAndroid Build Coastguard Worker    "include/netlink/xfrm/template.h"
136*4dc78e53SAndroid Build Coastguard Worker    "include/nl-priv-dynamic-core/cache-api.h"
137*4dc78e53SAndroid Build Coastguard Worker    "include/nl-priv-dynamic-core/object-api.h"
138*4dc78e53SAndroid Build Coastguard Worker    "lib/addr.c"
139*4dc78e53SAndroid Build Coastguard Worker    "lib/attr.c"
140*4dc78e53SAndroid Build Coastguard Worker    "lib/cache.c"
141*4dc78e53SAndroid Build Coastguard Worker    "lib/cache_mngr.c"
142*4dc78e53SAndroid Build Coastguard Worker    "lib/cache_mngt.c"
143*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/cls/basic.c"
144*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/cls/cgroup.c"
145*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/bfifo.c"
146*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/blackhole.c"
147*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/fq_codel.c"
148*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/hfsc.c"
149*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/htb.c"
150*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/ingress.c"
151*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/pfifo.c"
152*4dc78e53SAndroid Build Coastguard Worker    "lib/cli/qdisc/plug.c"
153*4dc78e53SAndroid Build Coastguard Worker    "lib/data.c"
154*4dc78e53SAndroid Build Coastguard Worker    "lib/error.c"
155*4dc78e53SAndroid Build Coastguard Worker    "lib/fib_lookup/lookup.c"
156*4dc78e53SAndroid Build Coastguard Worker    "lib/fib_lookup/request.c"
157*4dc78e53SAndroid Build Coastguard Worker    "lib/genl/ctrl.c"
158*4dc78e53SAndroid Build Coastguard Worker    "lib/genl/family.c"
159*4dc78e53SAndroid Build Coastguard Worker    "lib/genl/genl.c"
160*4dc78e53SAndroid Build Coastguard Worker    "lib/genl/mngt.c"
161*4dc78e53SAndroid Build Coastguard Worker    "lib/genl/nl-genl.h"
162*4dc78e53SAndroid Build Coastguard Worker    "lib/handlers.c"
163*4dc78e53SAndroid Build Coastguard Worker    "lib/hash.c"
164*4dc78e53SAndroid Build Coastguard Worker    "lib/hashtable.c"
165*4dc78e53SAndroid Build Coastguard Worker    "lib/idiag/idiag.c"
166*4dc78e53SAndroid Build Coastguard Worker    "lib/idiag/idiag_meminfo_obj.c"
167*4dc78e53SAndroid Build Coastguard Worker    "lib/idiag/idiag_msg_obj.c"
168*4dc78e53SAndroid Build Coastguard Worker    "lib/idiag/idiag_req_obj.c"
169*4dc78e53SAndroid Build Coastguard Worker    "lib/idiag/idiag_vegasinfo_obj.c"
170*4dc78e53SAndroid Build Coastguard Worker    "lib/mpls.c"
171*4dc78e53SAndroid Build Coastguard Worker    "lib/mpls.h"
172*4dc78e53SAndroid Build Coastguard Worker    "lib/msg.c"
173*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/ct.c"
174*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/ct_obj.c"
175*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/exp.c"
176*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/exp_obj.c"
177*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/log.c"
178*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/log_msg.c"
179*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/log_msg_obj.c"
180*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/log_obj.c"
181*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/netfilter.c"
182*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/nfnl.c"
183*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/queue.c"
184*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/queue_msg.c"
185*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/queue_msg_obj.c"
186*4dc78e53SAndroid Build Coastguard Worker    "lib/netfilter/queue_obj.c"
187*4dc78e53SAndroid Build Coastguard Worker    "lib/nl-core.h"
188*4dc78e53SAndroid Build Coastguard Worker    "lib/nl.c"
189*4dc78e53SAndroid Build Coastguard Worker    "lib/object.c"
190*4dc78e53SAndroid Build Coastguard Worker    "lib/route/act.c"
191*4dc78e53SAndroid Build Coastguard Worker    "lib/route/act/gact.c"
192*4dc78e53SAndroid Build Coastguard Worker    "lib/route/act/mirred.c"
193*4dc78e53SAndroid Build Coastguard Worker    "lib/route/act/skbedit.c"
194*4dc78e53SAndroid Build Coastguard Worker    "lib/route/act/vlan.c"
195*4dc78e53SAndroid Build Coastguard Worker    "lib/route/addr.c"
196*4dc78e53SAndroid Build Coastguard Worker    "lib/route/class.c"
197*4dc78e53SAndroid Build Coastguard Worker    "lib/route/classid.c"
198*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls.c"
199*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/basic.c"
200*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/cgroup.c"
201*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch.c"
202*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch/cmp.c"
203*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch/container.c"
204*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch/meta.c"
205*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch/nbyte.c"
206*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/ematch/text.c"
207*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/flower.c"
208*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/fw.c"
209*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/mall.c"
210*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/police.c"
211*4dc78e53SAndroid Build Coastguard Worker    "lib/route/cls/u32.c"
212*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link-sriov.h"
213*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link.c"
214*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/api.c"
215*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/bonding.c"
216*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/bridge.c"
217*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/can.c"
218*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/dummy.c"
219*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/geneve.c"
220*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ifb.c"
221*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/inet.c"
222*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/inet6.c"
223*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ip6gre.c"
224*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ip6tnl.c"
225*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ip6vti.c"
226*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ipgre.c"
227*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ipip.c"
228*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ipvlan.c"
229*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ipvti.c"
230*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/link-api.h"
231*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/macsec.c"
232*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/macvlan.c"
233*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/ppp.c"
234*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/sit.c"
235*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/sriov.c"
236*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/team.c"
237*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/veth.c"
238*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/vlan.c"
239*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/vrf.c"
240*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/vxlan.c"
241*4dc78e53SAndroid Build Coastguard Worker    "lib/route/link/xfrmi.c"
242*4dc78e53SAndroid Build Coastguard Worker    "lib/route/mdb.c"
243*4dc78e53SAndroid Build Coastguard Worker    "lib/route/neigh.c"
244*4dc78e53SAndroid Build Coastguard Worker    "lib/route/netconf.c"
245*4dc78e53SAndroid Build Coastguard Worker    "lib/route/nexthop-encap.h"
246*4dc78e53SAndroid Build Coastguard Worker    "lib/route/nexthop.c"
247*4dc78e53SAndroid Build Coastguard Worker    "lib/route/nexthop_encap.c"
248*4dc78e53SAndroid Build Coastguard Worker    "lib/route/nh_encap_mpls.c"
249*4dc78e53SAndroid Build Coastguard Worker    "lib/route/pktloc.c"
250*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc.c"
251*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/blackhole.c"
252*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/cbq.c"
253*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/dsmark.c"
254*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/fifo.c"
255*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/fq_codel.c"
256*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/hfsc.c"
257*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/htb.c"
258*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/ingress.c"
259*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/mqprio.c"
260*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/netem.c"
261*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/plug.c"
262*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/prio.c"
263*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/red.c"
264*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/sfq.c"
265*4dc78e53SAndroid Build Coastguard Worker    "lib/route/qdisc/tbf.c"
266*4dc78e53SAndroid Build Coastguard Worker    "lib/route/route.c"
267*4dc78e53SAndroid Build Coastguard Worker    "lib/route/route_obj.c"
268*4dc78e53SAndroid Build Coastguard Worker    "lib/route/route_utils.c"
269*4dc78e53SAndroid Build Coastguard Worker    "lib/route/rtnl.c"
270*4dc78e53SAndroid Build Coastguard Worker    "lib/route/rule.c"
271*4dc78e53SAndroid Build Coastguard Worker    "lib/route/tc-api.h"
272*4dc78e53SAndroid Build Coastguard Worker    "lib/route/tc.c"
273*4dc78e53SAndroid Build Coastguard Worker    "lib/socket.c"
274*4dc78e53SAndroid Build Coastguard Worker    "lib/utils.c"
275*4dc78e53SAndroid Build Coastguard Worker    "lib/version.c"
276*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/ae.c"
277*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/lifetime.c"
278*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/sa.c"
279*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/selector.c"
280*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/sp.c"
281*4dc78e53SAndroid Build Coastguard Worker    "lib/xfrm/template.c"
282*4dc78e53SAndroid Build Coastguard Worker    "python/netlink/utils.h"
283*4dc78e53SAndroid Build Coastguard Worker    "src/genl-ctrl-list.c"
284*4dc78e53SAndroid Build Coastguard Worker    "src/idiag-socket-details.c"
285*4dc78e53SAndroid Build Coastguard Worker    "src/lib/addr.c"
286*4dc78e53SAndroid Build Coastguard Worker    "src/lib/cls.c"
287*4dc78e53SAndroid Build Coastguard Worker    "src/lib/ct.c"
288*4dc78e53SAndroid Build Coastguard Worker    "src/lib/exp.c"
289*4dc78e53SAndroid Build Coastguard Worker    "src/lib/link.c"
290*4dc78e53SAndroid Build Coastguard Worker    "src/lib/neigh.c"
291*4dc78e53SAndroid Build Coastguard Worker    "src/lib/route.c"
292*4dc78e53SAndroid Build Coastguard Worker    "src/lib/tc.c"
293*4dc78e53SAndroid Build Coastguard Worker    "src/lib/utils.c"
294*4dc78e53SAndroid Build Coastguard Worker    "src/nf-ct-add.c"
295*4dc78e53SAndroid Build Coastguard Worker    "src/nf-ct-events.c"
296*4dc78e53SAndroid Build Coastguard Worker    "src/nf-ct-list.c"
297*4dc78e53SAndroid Build Coastguard Worker    "src/nf-exp-add.c"
298*4dc78e53SAndroid Build Coastguard Worker    "src/nf-exp-delete.c"
299*4dc78e53SAndroid Build Coastguard Worker    "src/nf-exp-list.c"
300*4dc78e53SAndroid Build Coastguard Worker    "src/nf-log.c"
301*4dc78e53SAndroid Build Coastguard Worker    "src/nf-monitor.c"
302*4dc78e53SAndroid Build Coastguard Worker    "src/nf-queue.c"
303*4dc78e53SAndroid Build Coastguard Worker    "src/nl-addr-add.c"
304*4dc78e53SAndroid Build Coastguard Worker    "src/nl-addr-delete.c"
305*4dc78e53SAndroid Build Coastguard Worker    "src/nl-addr-list.c"
306*4dc78e53SAndroid Build Coastguard Worker    "src/nl-class-add.c"
307*4dc78e53SAndroid Build Coastguard Worker    "src/nl-class-delete.c"
308*4dc78e53SAndroid Build Coastguard Worker    "src/nl-class-list.c"
309*4dc78e53SAndroid Build Coastguard Worker    "src/nl-classid-lookup.c"
310*4dc78e53SAndroid Build Coastguard Worker    "src/nl-cls-add.c"
311*4dc78e53SAndroid Build Coastguard Worker    "src/nl-cls-delete.c"
312*4dc78e53SAndroid Build Coastguard Worker    "src/nl-cls-list.c"
313*4dc78e53SAndroid Build Coastguard Worker    "src/nl-fib-lookup.c"
314*4dc78e53SAndroid Build Coastguard Worker    "src/nl-link-enslave.c"
315*4dc78e53SAndroid Build Coastguard Worker    "src/nl-link-list.c"
316*4dc78e53SAndroid Build Coastguard Worker    "src/nl-link-release.c"
317*4dc78e53SAndroid Build Coastguard Worker    "src/nl-link-set.c"
318*4dc78e53SAndroid Build Coastguard Worker    "src/nl-link-stats.c"
319*4dc78e53SAndroid Build Coastguard Worker    "src/nl-list-caches.c"
320*4dc78e53SAndroid Build Coastguard Worker    "src/nl-list-sockets.c"
321*4dc78e53SAndroid Build Coastguard Worker    "src/nl-monitor.c"
322*4dc78e53SAndroid Build Coastguard Worker    "src/nl-neigh-add.c"
323*4dc78e53SAndroid Build Coastguard Worker    "src/nl-neigh-delete.c"
324*4dc78e53SAndroid Build Coastguard Worker    "src/nl-neigh-list.c"
325*4dc78e53SAndroid Build Coastguard Worker    "src/nl-neightbl-list.c"
326*4dc78e53SAndroid Build Coastguard Worker    "src/nl-pktloc-lookup.c"
327*4dc78e53SAndroid Build Coastguard Worker    "src/nl-qdisc-add.c"
328*4dc78e53SAndroid Build Coastguard Worker    "src/nl-qdisc-delete.c"
329*4dc78e53SAndroid Build Coastguard Worker    "src/nl-qdisc-list.c"
330*4dc78e53SAndroid Build Coastguard Worker    "src/nl-route-add.c"
331*4dc78e53SAndroid Build Coastguard Worker    "src/nl-route-delete.c"
332*4dc78e53SAndroid Build Coastguard Worker    "src/nl-route-get.c"
333*4dc78e53SAndroid Build Coastguard Worker    "src/nl-route-list.c"
334*4dc78e53SAndroid Build Coastguard Worker    "src/nl-rule-list.c"
335*4dc78e53SAndroid Build Coastguard Worker    "src/nl-tctree-list.c"
336*4dc78e53SAndroid Build Coastguard Worker    "src/nl-util-addr.c"
337*4dc78e53SAndroid Build Coastguard Worker    "tests/test-cache-mngr.c"
338*4dc78e53SAndroid Build Coastguard Worker    "tests/test-complex-HTB-with-hash-filters.c"
339*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-bridge.c"
340*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-geneve.c"
341*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-ip6tnl.c"
342*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-ipgre.c"
343*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-ipgretap.c"
344*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-ipip.c"
345*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-ipvti.c"
346*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-macsec.c"
347*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-macvlan.c"
348*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-macvtap.c"
349*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-sit.c"
350*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-veth.c"
351*4dc78e53SAndroid Build Coastguard Worker    "tests/test-create-xfrmi.c"
352*4dc78e53SAndroid Build Coastguard Worker    "tests/test-genl.c"
353*4dc78e53SAndroid Build Coastguard Worker    "tests/test-nf-cache-mngr.c"
354*4dc78e53SAndroid Build Coastguard Worker    "tests/test-socket-creation.c"
355*4dc78e53SAndroid Build Coastguard Worker    "tests/test-u32-filter-with-actions.c"
356*4dc78e53SAndroid Build Coastguard Worker)
357*4dc78e53SAndroid Build Coastguard Worker
358*4dc78e53SAndroid Build Coastguard WorkerDIR_ROOT="$(git rev-parse --show-toplevel)" || die "not inside a git repository"
359*4dc78e53SAndroid Build Coastguard WorkerDIR_PREFIX="$(git rev-parse --show-prefix)" || die "not inside a git repository"
360*4dc78e53SAndroid Build Coastguard Worker
361*4dc78e53SAndroid Build Coastguard Workerif [ ! -f "$DIR_ROOT/.clang-format" ]; then
362*4dc78e53SAndroid Build Coastguard Worker    die "Error: the clang-format file in \"$DIR_ROOT\" does not exist"
363*4dc78e53SAndroid Build Coastguard Workerfi
364*4dc78e53SAndroid Build Coastguard Worker
365*4dc78e53SAndroid Build Coastguard Workerif ! command -v clang-format &> /dev/null; then
366*4dc78e53SAndroid Build Coastguard Worker    die "Error: clang-format is not installed. On RHEL/Fedora/CentOS run 'dnf install clang-tools-extra'"
367*4dc78e53SAndroid Build Coastguard Workerfi
368*4dc78e53SAndroid Build Coastguard Worker
369*4dc78e53SAndroid Build Coastguard Workerif test -n "$DIR_PREFIX"; then
370*4dc78e53SAndroid Build Coastguard Worker    EXCLUDE_PATHS=()
371*4dc78e53SAndroid Build Coastguard Worker    for e in "${EXCLUDE_PATHS_TOPLEVEL[@]}"; do
372*4dc78e53SAndroid Build Coastguard Worker        REGEX="^$DIR_PREFIX([^/].*)$"
373*4dc78e53SAndroid Build Coastguard Worker        if [[ "$e" =~ $REGEX ]]; then
374*4dc78e53SAndroid Build Coastguard Worker            EXCLUDE_PATHS+=("${BASH_REMATCH[1]}")
375*4dc78e53SAndroid Build Coastguard Worker        fi
376*4dc78e53SAndroid Build Coastguard Worker    done
377*4dc78e53SAndroid Build Coastguard Workerelse
378*4dc78e53SAndroid Build Coastguard Worker    EXCLUDE_PATHS=("${EXCLUDE_PATHS_TOPLEVEL[@]}")
379*4dc78e53SAndroid Build Coastguard Workerfi
380*4dc78e53SAndroid Build Coastguard Worker
381*4dc78e53SAndroid Build Coastguard WorkerFILES=()
382*4dc78e53SAndroid Build Coastguard WorkerHAS_EXPLICIT_FILES=0
383*4dc78e53SAndroid Build Coastguard WorkerSHOW_FILENAMES=0
384*4dc78e53SAndroid Build Coastguard WorkerTEST_ONLY=0
385*4dc78e53SAndroid Build Coastguard WorkerCHECK_UPSTREAM=
386*4dc78e53SAndroid Build Coastguard Worker
387*4dc78e53SAndroid Build Coastguard Workerusage() {
388*4dc78e53SAndroid Build Coastguard Worker    printf "Usage: %s [OPTION]... [FILE]...\n" "$(basename "$0")"
389*4dc78e53SAndroid Build Coastguard Worker    printf "Reformat source files using clang-format.\n\n"
390*4dc78e53SAndroid Build Coastguard Worker    printf "If no file is given the script runs on the whole codebase.\n"
391*4dc78e53SAndroid Build Coastguard Worker    printf "OPTIONS:\n"
392*4dc78e53SAndroid Build Coastguard Worker    printf "    -h                    Print this help message.\n"
393*4dc78e53SAndroid Build Coastguard Worker    printf "    -i                    Reformat files (the default).\n"
394*4dc78e53SAndroid Build Coastguard Worker    printf "    -n|--dry-run          Only check the files (contrary to \"-i\").\n"
395*4dc78e53SAndroid Build Coastguard Worker    printf "    -a|--all              Check all files (the default).\n"
396*4dc78e53SAndroid Build Coastguard Worker    printf "    -u|--upstream COMMIT  Check only files from \`git diff --name-only COMMIT\` (contrary to \"-a\").\n"
397*4dc78e53SAndroid Build Coastguard Worker    printf "                          This also affects directories given in the [FILE] list, but not files.\n"
398*4dc78e53SAndroid Build Coastguard Worker    printf "                          If this is the last parameter and COMMIT is unspecified/empty, it defaults to \"main\".\n"
399*4dc78e53SAndroid Build Coastguard Worker    printf "    -F|--fast             Same as \`-u HEAD^\`.\n"
400*4dc78e53SAndroid Build Coastguard Worker    printf "    -l|--show-filenames   Only print the filenames that would be checked/formatted\n"
401*4dc78e53SAndroid Build Coastguard Worker    printf "    --                    Separate options from filenames/directories\n"
402*4dc78e53SAndroid Build Coastguard Worker    if [ -n "${_LIBNL_CODE_FORMAT_CONTAINER+x}" ] ; then
403*4dc78e53SAndroid Build Coastguard Worker        printf "\n"
404*4dc78e53SAndroid Build Coastguard Worker        printf "Command runs inside container image \"$_LIBNL_CODE_FORMAT_CONTAINER\".\n"
405*4dc78e53SAndroid Build Coastguard Worker        printf "Delete/renew image with \`podman rmi \"$_LIBNL_CODE_FORMAT_CONTAINER\"\`.\n"
406*4dc78e53SAndroid Build Coastguard Worker    fi
407*4dc78e53SAndroid Build Coastguard Worker}
408*4dc78e53SAndroid Build Coastguard Worker
409*4dc78e53SAndroid Build Coastguard Workerls_files_exist() {
410*4dc78e53SAndroid Build Coastguard Worker    local OLD_IFS="$IFS"
411*4dc78e53SAndroid Build Coastguard Worker    local f
412*4dc78e53SAndroid Build Coastguard Worker
413*4dc78e53SAndroid Build Coastguard Worker    IFS=$'\n'
414*4dc78e53SAndroid Build Coastguard Worker    for f in $(cat) ; do
415*4dc78e53SAndroid Build Coastguard Worker        test -f "$f" && printf '%s\n' "$f"
416*4dc78e53SAndroid Build Coastguard Worker    done
417*4dc78e53SAndroid Build Coastguard Worker    IFS="$OLD_IFS"
418*4dc78e53SAndroid Build Coastguard Worker}
419*4dc78e53SAndroid Build Coastguard Worker
420*4dc78e53SAndroid Build Coastguard Workerls_files_filter() {
421*4dc78e53SAndroid Build Coastguard Worker    local OLD_IFS="$IFS"
422*4dc78e53SAndroid Build Coastguard Worker    local f
423*4dc78e53SAndroid Build Coastguard Worker
424*4dc78e53SAndroid Build Coastguard Worker    IFS=$'\n'
425*4dc78e53SAndroid Build Coastguard Worker    for f in $(cat) ; do
426*4dc78e53SAndroid Build Coastguard Worker        local found=1
427*4dc78e53SAndroid Build Coastguard Worker        local p
428*4dc78e53SAndroid Build Coastguard Worker        for p; do
429*4dc78e53SAndroid Build Coastguard Worker            [[ "$f" = "$p/"* ]] && found=
430*4dc78e53SAndroid Build Coastguard Worker            [[ "$f" = "$p" ]] && found=
431*4dc78e53SAndroid Build Coastguard Worker        done
432*4dc78e53SAndroid Build Coastguard Worker        test -n "$found" && printf '%s\n' "$f"
433*4dc78e53SAndroid Build Coastguard Worker    done
434*4dc78e53SAndroid Build Coastguard Worker    IFS="$OLD_IFS"
435*4dc78e53SAndroid Build Coastguard Worker}
436*4dc78e53SAndroid Build Coastguard Worker
437*4dc78e53SAndroid Build Coastguard Workerg_ls_files() {
438*4dc78e53SAndroid Build Coastguard Worker    local pattern="$1"
439*4dc78e53SAndroid Build Coastguard Worker    shift
440*4dc78e53SAndroid Build Coastguard Worker
441*4dc78e53SAndroid Build Coastguard Worker    if [ -z "$CHECK_UPSTREAM" ]; then
442*4dc78e53SAndroid Build Coastguard Worker        git ls-files -- "$pattern"
443*4dc78e53SAndroid Build Coastguard Worker    else
444*4dc78e53SAndroid Build Coastguard Worker        git diff --no-renames --name-only "$CHECK_UPSTREAM" -- "$pattern" \
445*4dc78e53SAndroid Build Coastguard Worker            | ls_files_exist
446*4dc78e53SAndroid Build Coastguard Worker    fi | ls_files_filter "$@"
447*4dc78e53SAndroid Build Coastguard Worker}
448*4dc78e53SAndroid Build Coastguard Worker
449*4dc78e53SAndroid Build Coastguard WorkerHAD_DASHDASH=0
450*4dc78e53SAndroid Build Coastguard Workerwhile (( $# )); do
451*4dc78e53SAndroid Build Coastguard Worker    if [ "$HAD_DASHDASH" = 0 ]; then
452*4dc78e53SAndroid Build Coastguard Worker        case "$1" in
453*4dc78e53SAndroid Build Coastguard Worker            -h)
454*4dc78e53SAndroid Build Coastguard Worker                usage
455*4dc78e53SAndroid Build Coastguard Worker                exit 0
456*4dc78e53SAndroid Build Coastguard Worker                ;;
457*4dc78e53SAndroid Build Coastguard Worker            -l|--show-filenames)
458*4dc78e53SAndroid Build Coastguard Worker                SHOW_FILENAMES=1
459*4dc78e53SAndroid Build Coastguard Worker                shift
460*4dc78e53SAndroid Build Coastguard Worker                continue
461*4dc78e53SAndroid Build Coastguard Worker                ;;
462*4dc78e53SAndroid Build Coastguard Worker            -a|--all)
463*4dc78e53SAndroid Build Coastguard Worker                CHECK_UPSTREAM=
464*4dc78e53SAndroid Build Coastguard Worker                shift
465*4dc78e53SAndroid Build Coastguard Worker                continue
466*4dc78e53SAndroid Build Coastguard Worker                ;;
467*4dc78e53SAndroid Build Coastguard Worker            -u|--upstream)
468*4dc78e53SAndroid Build Coastguard Worker                shift
469*4dc78e53SAndroid Build Coastguard Worker                CHECK_UPSTREAM="$1"
470*4dc78e53SAndroid Build Coastguard Worker                test -n "$CHECK_UPSTREAM" || CHECK_UPSTREAM=main
471*4dc78e53SAndroid Build Coastguard Worker                shift || :
472*4dc78e53SAndroid Build Coastguard Worker                continue
473*4dc78e53SAndroid Build Coastguard Worker                ;;
474*4dc78e53SAndroid Build Coastguard Worker            -F|--fast)
475*4dc78e53SAndroid Build Coastguard Worker                CHECK_UPSTREAM='HEAD^'
476*4dc78e53SAndroid Build Coastguard Worker                shift
477*4dc78e53SAndroid Build Coastguard Worker                continue
478*4dc78e53SAndroid Build Coastguard Worker                ;;
479*4dc78e53SAndroid Build Coastguard Worker            -n|--dry-run)
480*4dc78e53SAndroid Build Coastguard Worker                TEST_ONLY=1
481*4dc78e53SAndroid Build Coastguard Worker                shift
482*4dc78e53SAndroid Build Coastguard Worker                continue
483*4dc78e53SAndroid Build Coastguard Worker                ;;
484*4dc78e53SAndroid Build Coastguard Worker            -i)
485*4dc78e53SAndroid Build Coastguard Worker                TEST_ONLY=0
486*4dc78e53SAndroid Build Coastguard Worker                shift
487*4dc78e53SAndroid Build Coastguard Worker                continue
488*4dc78e53SAndroid Build Coastguard Worker                ;;
489*4dc78e53SAndroid Build Coastguard Worker            --)
490*4dc78e53SAndroid Build Coastguard Worker                HAD_DASHDASH=1
491*4dc78e53SAndroid Build Coastguard Worker                shift
492*4dc78e53SAndroid Build Coastguard Worker                continue
493*4dc78e53SAndroid Build Coastguard Worker                ;;
494*4dc78e53SAndroid Build Coastguard Worker        esac
495*4dc78e53SAndroid Build Coastguard Worker    fi
496*4dc78e53SAndroid Build Coastguard Worker    if [ -d "$1" ]; then
497*4dc78e53SAndroid Build Coastguard Worker        while IFS='' read -r line;
498*4dc78e53SAndroid Build Coastguard Worker            do FILES+=("$line")
499*4dc78e53SAndroid Build Coastguard Worker        done < <(CHECK_UPSTREAM="$CHECK_UPSTREAM" g_ls_files "${1}/*.[hc]" "${EXCLUDE_PATHS[@]}")
500*4dc78e53SAndroid Build Coastguard Worker    elif [ -f "$1" ]; then
501*4dc78e53SAndroid Build Coastguard Worker        FILES+=("$1")
502*4dc78e53SAndroid Build Coastguard Worker    else
503*4dc78e53SAndroid Build Coastguard Worker        usage >&2
504*4dc78e53SAndroid Build Coastguard Worker        echo >&2
505*4dc78e53SAndroid Build Coastguard Worker        die "Unknown argument \"$1\" which also is neither a file nor a directory."
506*4dc78e53SAndroid Build Coastguard Worker    fi
507*4dc78e53SAndroid Build Coastguard Worker    shift
508*4dc78e53SAndroid Build Coastguard Worker    HAS_EXPLICIT_FILES=1
509*4dc78e53SAndroid Build Coastguard Workerdone
510*4dc78e53SAndroid Build Coastguard Worker
511*4dc78e53SAndroid Build Coastguard Workerif [ $HAS_EXPLICIT_FILES = 0 ]; then
512*4dc78e53SAndroid Build Coastguard Worker    while IFS='' read -r line; do
513*4dc78e53SAndroid Build Coastguard Worker        FILES+=("$line")
514*4dc78e53SAndroid Build Coastguard Worker    done < <(CHECK_UPSTREAM="$CHECK_UPSTREAM" g_ls_files '*.[ch]' "${EXCLUDE_PATHS[@]}")
515*4dc78e53SAndroid Build Coastguard Workerfi
516*4dc78e53SAndroid Build Coastguard Worker
517*4dc78e53SAndroid Build Coastguard Workerif [ $SHOW_FILENAMES = 1 ]; then
518*4dc78e53SAndroid Build Coastguard Worker    for f in "${FILES[@]}" ; do
519*4dc78e53SAndroid Build Coastguard Worker        printf '%s\n' "$f"
520*4dc78e53SAndroid Build Coastguard Worker    done
521*4dc78e53SAndroid Build Coastguard Worker    exit 0
522*4dc78e53SAndroid Build Coastguard Workerfi
523*4dc78e53SAndroid Build Coastguard Worker
524*4dc78e53SAndroid Build Coastguard Workerif [ "${#FILES[@]}" = 0 ]; then
525*4dc78e53SAndroid Build Coastguard Worker    if [ -z "$CHECK_UPSTREAM" ]; then
526*4dc78e53SAndroid Build Coastguard Worker        die "Error: no files to check"
527*4dc78e53SAndroid Build Coastguard Worker    fi
528*4dc78e53SAndroid Build Coastguard Worker    exit 0
529*4dc78e53SAndroid Build Coastguard Workerfi
530*4dc78e53SAndroid Build Coastguard Worker
531*4dc78e53SAndroid Build Coastguard WorkerFLAGS_TEST=( --Werror -n --ferror-limit=1 )
532*4dc78e53SAndroid Build Coastguard Worker
533*4dc78e53SAndroid Build Coastguard Workerif [ $TEST_ONLY = 1 ]; then
534*4dc78e53SAndroid Build Coastguard Worker    # We assume that all formatting is correct. In that mode, passing
535*4dc78e53SAndroid Build Coastguard Worker    # all filenames to clang-format is significantly faster.
536*4dc78e53SAndroid Build Coastguard Worker    #
537*4dc78e53SAndroid Build Coastguard Worker    # Only in case of an error, we iterate over the files one by one
538*4dc78e53SAndroid Build Coastguard Worker    # until we find the first invalid file.
539*4dc78e53SAndroid Build Coastguard Worker    for f in "${FILES[@]}"; do
540*4dc78e53SAndroid Build Coastguard Worker        [ -f "$f" ] || die "Error: file \"$f\" does not exist (or is not a regular file)"
541*4dc78e53SAndroid Build Coastguard Worker    done
542*4dc78e53SAndroid Build Coastguard Worker    clang-format "${FLAGS_TEST[@]}" "${FILES[@]}" &>/dev/null && exit 0
543*4dc78e53SAndroid Build Coastguard Worker    for f in "${FILES[@]}"; do
544*4dc78e53SAndroid Build Coastguard Worker        [ -f "$f" ] || die "Error: file \"$f\" does not exist (or is not a regular file)"
545*4dc78e53SAndroid Build Coastguard Worker        if ! clang-format "${FLAGS_TEST[@]}" "$f" &>/dev/null; then
546*4dc78e53SAndroid Build Coastguard Worker            FF="$(mktemp)"
547*4dc78e53SAndroid Build Coastguard Worker            trap 'rm -f "$FF"' EXIT
548*4dc78e53SAndroid Build Coastguard Worker            clang-format "$f" 2>/dev/null > "$FF"
549*4dc78e53SAndroid Build Coastguard Worker            git --no-pager diff "$f" "$FF" || :
550*4dc78e53SAndroid Build Coastguard Worker            FEDORA_VERSION="$(sed -n 's/^      image: fedora:\([0-9]\+\)$/\1/p' .github/workflows/ci.yml)"
551*4dc78e53SAndroid Build Coastguard Worker            die "Error: file \"$f\" has style issues."$'\n'"Fix it by running \`\"$0\"\` using $(clang-format --version)
552*4dc78e53SAndroid Build Coastguard WorkerAlternatively, run \`./tools/clang-format-container.sh\` to use a podman container named \"libnl-code-format-f$FEDORA_VERSION\"."
553*4dc78e53SAndroid Build Coastguard Worker        fi
554*4dc78e53SAndroid Build Coastguard Worker    done
555*4dc78e53SAndroid Build Coastguard Worker    die "an unknown error happened."
556*4dc78e53SAndroid Build Coastguard Workerfi
557*4dc78e53SAndroid Build Coastguard Worker
558*4dc78e53SAndroid Build Coastguard Workerclang-format -i "${FILES[@]}"
559