bashrs 6.66.0

Rust-to-Shell transpiler for deterministic bootstrap scripts
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
//! Lint rules for shell script analysis

// ShellCheck SC1xxx rules (source code issues)
pub mod sc1003;
pub mod sc1004;
pub mod sc1007;
pub mod sc1008;
pub mod sc1009;
pub mod sc1012;
pub mod sc1014;
pub mod sc1017;
pub mod sc1018;
pub mod sc1020;
pub mod sc1026;
pub mod sc1028;
pub mod sc1035;
pub mod sc1036;
pub mod sc1037;
pub mod sc1038;
pub mod sc1040;
pub mod sc1041;
pub mod sc1044;
pub mod sc1045;
pub mod sc1065;
pub mod sc1066;
pub mod sc1068;
pub mod sc1069;
pub mod sc1075;
pub mod sc1076;
pub mod sc1078;
pub mod sc1079;
pub mod sc1082;
pub mod sc1083;
pub mod sc1084;
pub mod sc1086;
pub mod sc1087;
pub mod sc1090;
pub mod sc1091;
pub mod sc1094;
pub mod sc1095;
pub mod sc1097;
pub mod sc1098;
pub mod sc1099;
pub mod sc1100;
pub mod sc1101;
pub mod sc1104;
pub mod sc1105;
pub mod sc1106;
pub mod sc1109;
pub mod sc1110;
pub mod sc1111;
pub mod sc1113;
pub mod sc1114;
pub mod sc1115;
pub mod sc1117;
pub mod sc1120;
pub mod sc1127;
pub mod sc1128;
pub mod sc1129;
pub mod sc1131;
pub mod sc1135;
pub mod sc1139;
pub mod sc1140;

// ShellCheck-equivalent rules
pub mod sc2001;
pub mod sc2002;
pub mod sc2003;
pub mod sc2004;
pub mod sc2005;
pub mod sc2006;
pub mod sc2007;
pub mod sc2008;
pub mod sc2009;
pub mod sc2010;
pub mod sc2011;
pub mod sc2012;
pub mod sc2013;
pub mod sc2014;
pub mod sc2015;
pub mod sc2016;
pub mod sc2017;
pub mod sc2018;
pub mod sc2019;
pub mod sc2020;
pub mod sc2021;
pub mod sc2022;
pub mod sc2023;
pub mod sc2024;
pub mod sc2025;
pub mod sc2026;
pub mod sc2027;
pub mod sc2028;
pub mod sc2029;
pub mod sc2030;
pub mod sc2031;
pub mod sc2032;
pub mod sc2033;
pub mod sc2034;
pub mod sc2035;
pub mod sc2036;
pub mod sc2037;
pub mod sc2038;
pub mod sc2039;
pub mod sc2040;
pub mod sc2041;
pub mod sc2042;
pub mod sc2043;
pub mod sc2044;
pub mod sc2045;
pub mod sc2046;
pub mod sc2047;
pub mod sc2048;
pub mod sc2049;
pub mod sc2050;
pub mod sc2051;
pub mod sc2052;
pub mod sc2053;
pub mod sc2054;
pub mod sc2055;
pub mod sc2056;
pub mod sc2057;
pub mod sc2058;
pub mod sc2059;
pub mod sc2060;
pub mod sc2061;
pub mod sc2062;
pub mod sc2063;
pub mod sc2064;
pub mod sc2064_logic;
pub mod sc2065;
pub mod sc2066;
pub mod sc2067;
pub mod sc2068;
pub mod sc2069;
pub mod sc2070;
pub mod sc2071;
pub mod sc2072;
pub mod sc2073;
pub mod sc2074;
pub mod sc2075;
pub mod sc2076;
pub mod sc2077;
pub mod sc2078;
pub mod sc2079;
pub mod sc2080;
pub mod sc2081;
pub mod sc2082;
pub mod sc2083;
pub mod sc2084;
pub mod sc2085;
pub mod sc2086;
pub mod sc2086_logic;
pub mod sc2087;
pub mod sc2088;
pub mod sc2089;
pub mod sc2090;
pub mod sc2091;
pub mod sc2092;
pub mod sc2093;
pub mod sc2094;
pub mod sc2095;
pub mod sc2096;
pub mod sc2097;
pub mod sc2098;
pub mod sc2099;
pub mod sc2100;
pub mod sc2101;
pub mod sc2102;
pub mod sc2103;
pub mod sc2104;
pub mod sc2105;
pub mod sc2106;
pub mod sc2107;
pub mod sc2108;
pub mod sc2109;
pub mod sc2110;
pub mod sc2111;
pub mod sc2112;
pub mod sc2113;
pub mod sc2114;
pub mod sc2115;
pub mod sc2116;
pub mod sc2117;
pub mod sc2118;
// pub mod sc2119;  // TODO: Requires AST parsing for proper function analysis (has false positives)
// pub mod sc2120;  // TODO: Requires AST parsing for proper function analysis (has false positives)
pub mod sc2121;
pub mod sc2122;
pub mod sc2123;
pub mod sc2124;
pub mod sc2125;
pub mod sc2126;
pub mod sc2127;
pub mod sc2128;
pub mod sc2129;
pub mod sc2130;
pub mod sc2131;
pub mod sc2132;
pub mod sc2133;
pub mod sc2134;
pub mod sc2135;
pub mod sc2136;
pub mod sc2137;
pub mod sc2138;
pub mod sc2139;
pub mod sc2140;
pub mod sc2141;
pub mod sc2142;
pub mod sc2143;
pub mod sc2144;
pub mod sc2145;
pub mod sc2146;
pub mod sc2147;
pub mod sc2148;
pub mod sc2149;
pub mod sc2150;
pub mod sc2151;
pub mod sc2152;
pub mod sc2153;
pub mod sc2154;
pub mod sc2154_logic;
pub mod sc2155;
pub mod sc2156;
pub mod sc2157;
pub mod sc2158;
pub mod sc2159;
pub mod sc2160;
pub mod sc2161;
pub mod sc2162;
pub mod sc2163;
pub mod sc2164;
pub mod sc2165;
pub mod sc2166;
pub mod sc2167;
pub mod sc2168;
pub mod sc2169;
pub mod sc2170;
pub mod sc2171;
pub mod sc2172;
pub mod sc2173;
pub mod sc2174;
pub mod sc2175;
pub mod sc2176;
pub mod sc2177;
pub mod sc2178;
pub mod sc2179;
pub mod sc2180;
pub mod sc2181;
pub mod sc2182;
pub mod sc2183;
pub mod sc2184;
pub mod sc2185;
pub mod sc2186;
pub mod sc2187;
pub mod sc2188;
pub mod sc2189;
pub mod sc2190;
pub mod sc2191;
pub mod sc2192;
pub mod sc2193;
pub mod sc2194;
pub mod sc2195;
pub mod sc2196;
pub mod sc2197;
pub mod sc2198;
pub mod sc2199;
pub mod sc2200;
pub mod sc2201;
pub mod sc2202;
pub mod sc2203;
pub mod sc2204;
pub mod sc2205;
pub mod sc2206;
pub mod sc2207;
pub mod sc2208;
pub mod sc2209;
pub mod sc2210;
pub mod sc2211;
pub mod sc2212;
pub mod sc2213;
pub mod sc2214;
pub mod sc2215;
pub mod sc2216;
pub mod sc2217;
pub mod sc2218;
pub mod sc2219;
pub mod sc2220;
pub mod sc2221;
pub mod sc2222;
pub mod sc2223;
pub mod sc2224;
pub mod sc2225;
pub mod sc2226;
pub mod sc2227;
pub mod sc2228;
pub mod sc2229;
pub mod sc2230;
pub mod sc2231;
pub mod sc2232;
pub mod sc2233;
pub mod sc2234;
pub mod sc2235;
pub mod sc2236;
pub mod sc2237;
pub mod sc2238;
pub mod sc2239;
pub mod sc2240;
pub mod sc2241;
pub mod sc2242;
pub mod sc2243;
pub mod sc2244;
pub mod sc2245;
pub mod sc2246;
pub mod sc2247;
pub mod sc2248;
pub mod sc2249;
pub mod sc2250;
pub mod sc2251;
pub mod sc2252;
pub mod sc2253;
pub mod sc2254;
pub mod sc2255;
pub mod sc2256;
pub mod sc2257;
pub mod sc2258;
pub mod sc2259;
pub mod sc2260;
pub mod sc2261;
pub mod sc2262;
pub mod sc2263;
pub mod sc2264;
pub mod sc2265;
pub mod sc2266;
pub mod sc2267;
pub mod sc2268;
pub mod sc2269;
pub mod sc2270;
pub mod sc2271;
pub mod sc2272;
pub mod sc2273;
pub mod sc2274;
pub mod sc2275;
pub mod sc2276;
pub mod sc2277;
pub mod sc2278;
pub mod sc2279;
pub mod sc2280;
pub mod sc2281;
pub mod sc2282;
pub mod sc2283;
pub mod sc2284;
pub mod sc2285;
pub mod sc2286;
pub mod sc2287;
pub mod sc2288;
pub mod sc2289;
pub mod sc2290;
pub mod sc2291;
pub mod sc2292;
pub mod sc2293;
pub mod sc2294;
pub mod sc2295;
pub mod sc2296;
pub mod sc2297;
pub mod sc2298;
pub mod sc2299;
pub mod sc2300;
pub mod sc2301;
pub mod sc2302;
pub mod sc2303;
pub mod sc2304;
pub mod sc2305;
pub mod sc2306;
pub mod sc2307;
pub mod sc2308;
pub mod sc2309;
pub mod sc2310;
pub mod sc2311;
pub mod sc2312;
pub mod sc2313;
pub mod sc2314;
pub mod sc2315;
pub mod sc2316;
pub mod sc2317;
pub mod sc2318;
pub mod sc2319;
pub mod sc2320;
pub mod sc2321;
pub mod sc2322;
pub mod sc2323;
pub mod sc2324;
pub mod sc2325;

// Determinism rules (bashrs-specific)
pub mod det001;
pub mod det002;
pub mod det003;
pub mod det004;

// Idempotency rules (bashrs-specific)
pub mod idem001;
pub mod idem002;
pub mod idem003;

// Best practice rules (bashrs-specific)
pub mod bash001;
pub mod bash002;
pub mod bash003;
pub mod bash004;
pub mod bash005;
pub mod bash006;
pub mod bash007;
pub mod bash008;
pub mod bash009;
pub mod bash010;

// Security rules (bashrs-specific)
pub mod sec001;
pub mod sec002;
pub mod sec003;
pub mod sec004;
pub mod sec005;
pub mod sec006;
pub mod sec007;
pub mod sec008;
pub mod sec009;
pub mod sec010;
pub mod sec010_logic;
pub mod sec011;
pub mod sec012;
pub mod sec013;
pub mod sec014;
pub mod sec015;
pub mod sec016;
pub mod sec017;
pub mod sec018;
pub mod sec019;
pub mod sec020;
pub mod sec021;
pub mod sec022;
pub mod sec023;
pub mod sec024;

// Makefile-specific rules (bashrs-specific)
pub mod make001;
pub mod make002;
pub mod make003;
pub mod make004;
pub mod make005;
pub mod make006;
pub mod make007;
pub mod make008;
pub mod make009;
pub mod make010;
pub mod make011;
pub mod make012;
pub mod make013;
pub mod make014;
pub mod make015;
pub mod make016;
pub mod make017;
pub mod make018;
pub mod make019;
pub mod make020;

// Dockerfile rules
pub mod docker001;
pub mod docker002;
pub mod docker003;
pub mod docker004;
pub mod docker005;
pub mod docker006;
pub mod docker007; // F061: Shell entrypoint detection
pub mod docker008; // F062, F064, F072: Shell in CMD/RUN detection
pub mod docker009; // F063: Multi-stage build validation
pub mod docker010; // F065: HEALTHCHECK validation
pub mod docker010_logic;
pub mod docker011; // F069: USER directive validation
pub mod docker012; // F075: STOPSIGNAL validation


include!("mod_part2_incl2.rs");