-
-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy path_golangci-lint
665 lines (641 loc) · 35.4 KB
/
_golangci-lint
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
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
#compdef golangci-lint
# -----------------------------------------------------------------------------
# The BSD-3-Clause License
#
# Copyright (c) 2018, Koichi Shiraishi
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# * Neither the name of que nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# -----------------------------------------------------------------------------
#
# github.com/golangci/golangci-lint/cmd/golangci-lint
#
# -------------------------------------------------------------------------------
function _golangci-lint() {
local context curcontext=$curcontext state line expl ret=1
declare -A opt_args
local -a commands
commands=(
"cache:Cache control and information"
"completion:Output completion script"
"config:Config"
"help:Help"
"linters:List current linters configuration"
"run:Run linters"
"version:Version"
)
local -a _global_flags
_global_flags=(
"--color=[Use color when printing \(default "auto"\)]:color mode:(always auto never)"
{-j,--concurrency}="[Concurrency \(default NumCPU\)]:num of concurrency"
"--cpu-profile-path=[Path to CPU profile output file]:cpu profile filepath:_files"
"--mem-profile-path=[Path to memory profile output file]:memory profile filepath:_files"
"--trace-path=[Path to trace output file]:trace profile filepath:_files"
{-v,--verbose}"[verbose output]"
"--version[Print version]"
{-h,--help}"[Show help]"
)
local -a _all_flags
_all_flags=(
"--out-format=[Format of output \(default "colored-line-number"\)]:output format:(colored-line-number line-number json tab checkstyle code-climate html junit-xml github-actions)"
"--print-issued-lines[Print lines of code with issue \(default true\)]"
"--print-linter-name [Print linter name in issue line \(default true\)]"
"--uniq-by-line[Make issues output unique by line \(default true\)]"
"--modules-download-mode=[Modules download mode. If not empty, passed as -mod=<mode> to go tools]:module download mode:(vendor mod readonly)"
"--issues-exit-code=[Exit code when issues were found \(default 1\)]:exit code"
"--build-tags=[Build tags]:build tags"
"--timeout=[Timeout for total work \(default 1m0s\)]:deadline duration"
"--tests[Analyze tests (default true\)]"
"--print-resources-usage[Print avg and max memory usage of golangci-lint and total time]"
{-c,--config}="[Read config from file path PATH]:config path:_files"
"--no-config[Don't read config]"
"--skip-dirs=[Regexps of directories to skip]:skip dir regexp:_directories"
"--skip-dirs-use-default[Use or not use default excluded directories]"
"--skip-files=[Regexps of files to skip]:skip file name regexp:_files"
{-E,--enable}"=[Enable specific linter]:enable linters"
{-D,--disable}"=[Disable specific linter]:enable linters"
"--disable-all[Disable all linters]"
{-p,--presets}"[Enable presets \(bugs|complexity|format|performance|style|unused\) of linters.]"
"--fast[Run only fast linters from enabled linters set]"
{-e,--exclude}"=[Exclude issue by regexp]:exclude regexp pattern"
"--exclude-use-default[Use or not use default excludes]"
"--max-issues-per-linter=[Maximum issues count per one linter. Set to 0 to disable \(default 50\)]:max issues count"
"--max-same-issues=[Maximum count of issues with the same text. Set to 0 to disable \(default 3\)]:max count of same issues text"
{-n,--new}"[Show only new issues: if there are unstaged changes or untracked files, only those changes are analyzed, else only changes in HEAD~ are analyzed.]"
"--new-from-rev=[Show only new issues created after git revision REV]:git revision"
"--new-from-patch=[Show only new issues created in git patch with file path PATH]:git patch file path:_files"
"--fix[Fix found issues]"
$_global_flags[@]
)
_arguments -C \
"1: :{_describe 'golangci-lint commands' commands}" \
"*:: :->args" \
$_global_flags[@] \
&& ret=0
case $words[1] in
cache)
local -a cache_commands
cache_commands=(
"clean:Clean cache"
"status:Show cache status"
)
_arguments \
"1: :{_describe 'cache commands' cache_commands}" \
"*:: :->args" \
$_global_flags[@]
case $words[1] in
clean|status)
_arguments $_global_flags[@]
;;
esac
;;
config)
local -a config_commands
config_commands=(
"path:Print used config path"
)
_arguments \
"1: :{_describe 'config commands' config_commands}" \
"*:: :->args" \
$_global_flags[@]
case $words[1] in
path)
_arguments $_all_flags[@]
;;
esac
;;
completion)
local -a completion_commands
completion_commands=(
"bash:Output bash completion script"
"zsh:Output zsh completion script"
)
_arguments \
"1: :{_describe 'completion commands' completion_commands}" \
$_global_flags[@]
;;
help)
local -a help_commands
help_commands=(
"linters:Help about linters"
)
_arguments \
"1: :{_describe 'help command' help_commands}" \
"*:: :->args"
case $words[1] in
linters)
_arguments $_all_flags[@]
;;
esac
;;
linters)
_arguments $_all_flags[@]
;;
run)
_arguments \
"1:files or packages:_files" \
$_all_flags[@]
;;
version)
_arguments $_global_flags[@]
;;
esac
return ret
}
_golangci-lint "$*"
# -----------------------------------------------------------------------------
#
# Smart, fast linters runner. Run it in cloud for every GitHub pull request on https://golangci.com
#
# Usage:
# golangci-lint [flags]
# golangci-lint [command]
#
# Available Commands:
# cache Cache control and information
# completion Output completion script
# config Config
# help Help
# linters List current linters configuration
# run Run this tool in cloud on every github pull request in https://golangci.com for free (public repos)
# version Version
#
# Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# -h, --help help for golangci-lint
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# Use "golangci-lint [command] --help" for more information about a command.
#
# -------------------------------------------------------------------------------
#
# Cache control and information
#
# Usage:
# golangci-lint cache [flags]
# golangci-lint cache [command]
#
# Available Commands:
# clean Clean cache
# status Show cache status
#
# Flags:
# -h, --help help for cache
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# Use "golangci-lint cache [command] --help" for more information about a command.
#
# -------------------------------------------------------------------------------
#
# Clean cache
#
# Usage:
# golangci-lint cache clean [flags]
#
# Flags:
# -h, --help help for clean
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
#
# Show cache status
#
# Usage:
# golangci-lint cache status [flags]
#
# Flags:
# -h, --help help for status
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
#
# Output completion script
#
# Usage:
# golangci-lint completion [command]
#
# Available Commands:
# bash Output bash completion script
# zsh Output zsh completion script
#
# Flags:
# -h, --help help for completion
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# Use "golangci-lint completion [command] --help" for more information about a command.
#
# -------------------------------------------------------------------------------
#
# Config
#
# Usage:
# golangci-lint config [flags]
# golangci-lint config [command]
#
# Available Commands:
# path Print used config path
#
# Flags:
# -h, --help help for config
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# Use "golangci-lint config [command] --help" for more information about a command.
#
# -------------------------------------------------------------------------------
#
# Print used config path
#
# Usage:
# golangci-lint config path [flags]
#
# Flags:
# --out-format string Format of output: colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml (default "colored-line-number")
# --print-issued-lines Print lines of code with issue (default true)
# --print-linter-name Print linter name in issue line (default true)
# --uniq-by-line Make issues output unique by line (default true)
# --modules-download-mode string Modules download mode. If not empty, passed as -mod=<mode> to go tools
# --issues-exit-code int Exit code when issues were found (default 1)
# --build-tags strings Build tags
# --timeout duration Timeout for total work (default 1m0s)
# --tests Analyze tests (*_test.go) (default true)
# --print-resources-usage Print avg and max memory usage of golangci-lint and total time
# -c, --config PATH Read config from file path PATH
# --no-config Don't read config
# --skip-dirs strings Regexps of directories to skip
# --skip-dirs-use-default Use or not use default excluded directories:
# - (^|/)vendor($|/)
# - (^|/)third_party($|/)
# - (^|/)testdata($|/)
# - (^|/)examples($|/)
# - (^|/)Godeps($|/)
# - (^|/)builtin($|/)
# (default true)
# --skip-files strings Regexps of files to skip
# -E, --enable strings Enable specific linter
# -D, --disable strings Disable specific linter
# --disable-all Disable all linters
# -p, --presets strings Enable presets (bugs|complexity|format|performance|style|unused) of linters. Run 'golangci-lint linters' to see them. This option implies option --disable-all
# --fast Run only fast linters from enabled linters set (first run won't be fast)
# -e, --exclude strings Exclude issue by regexp
# --exclude-use-default Use or not use default excludes:
# # errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
# - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
#
# # golint: Annoying issue about not having a comment. The rare codebase has such comments
# - (comment on exported (method|function|type|const)|should have( a package)? comment|comment should be of the form)
#
# # golint: False positive when tests are defined in package 'test'
# - func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
#
# # govet: Common false positives
# - (possible misuse of unsafe.Pointer|should have signature)
#
# # staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore
# - ineffective break statement. Did you mean to break out of the outer loop
#
# # gosec: Too many false-positives on 'unsafe' usage
# - Use of unsafe calls should be audited
#
# # gosec: Too many false-positives for parametrized shell calls
# - Subprocess launch(ed with variable|ing should be audited)
#
# # gosec: Duplicated errcheck checks
# - G104
#
# # gosec: Too many issues in popular repos
# - (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
#
# # gosec: False positive is triggered by 'src, err := ioutil.ReadFile(filename)'
# - Potential file inclusion via variable
# (default true)
# --max-issues-per-linter int Maximum issues count per one linter. Set to 0 to disable (default 50)
# --max-same-issues int Maximum count of issues with the same text. Set to 0 to disable (default 3)
# -n, --new Show only new issues: if there are unstaged changes or untracked files, only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing large codebase.
# It's not practical to fix all existing issues at the moment of integration: much better to not allow issues in new code.
# For CI setups, prefer --new-from-rev=HEAD~, as --new can skip linting the current patch if any scripts generate unstaged files before golangci-lint runs.
# --new-from-rev REV Show only new issues created after git revision REV
# --new-from-patch PATH Show only new issues created in git patch with file path PATH
# --fix Fix found issues (if it's supported by the linter)
# -h, --help help for path
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
#
# Help
#
# Usage:
# golangci-lint help [flags]
# golangci-lint help [command]
#
# Available Commands:
# linters Help about linters
#
# Flags:
# -h, --help help for help
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# Use "golangci-lint help [command] --help" for more information about a command.
#
# -------------------------------------------------------------------------------
#
# List current linters configuration
#
# Usage:
# golangci-lint linters [flags]
#
# Flags:
# --out-format string Format of output: colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml (default "colored-line-number")
# --print-issued-lines Print lines of code with issue (default true)
# --print-linter-name Print linter name in issue line (default true)
# --uniq-by-line Make issues output unique by line (default true)
# --modules-download-mode string Modules download mode. If not empty, passed as -mod=<mode> to go tools
# --issues-exit-code int Exit code when issues were found (default 1)
# --build-tags strings Build tags
# --timeout duration Timeout for total work (default 1m0s)
# --tests Analyze tests (*_test.go) (default true)
# --print-resources-usage Print avg and max memory usage of golangci-lint and total time
# -c, --config PATH Read config from file path PATH
# --no-config Don't read config
# --skip-dirs strings Regexps of directories to skip
# --skip-dirs-use-default Use or not use default excluded directories:
# - (^|/)vendor($|/)
# - (^|/)third_party($|/)
# - (^|/)testdata($|/)
# - (^|/)examples($|/)
# - (^|/)Godeps($|/)
# - (^|/)builtin($|/)
# (default true)
# --skip-files strings Regexps of files to skip
# -E, --enable strings Enable specific linter
# -D, --disable strings Disable specific linter
# --disable-all Disable all linters
# -p, --presets strings Enable presets (bugs|complexity|format|performance|style|unused) of linters. Run 'golangci-lint linters' to see them. This option implies option --disable-all
# --fast Run only fast linters from enabled linters set (first run won't be fast)
# -e, --exclude strings Exclude issue by regexp
# --exclude-use-default Use or not use default excludes:
# # errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
# - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
#
# # golint: Annoying issue about not having a comment. The rare codebase has such comments
# - (comment on exported (method|function|type|const)|should have( a package)? comment|comment should be of the form)
#
# # golint: False positive when tests are defined in package 'test'
# - func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
#
# # govet: Common false positives
# - (possible misuse of unsafe.Pointer|should have signature)
#
# # staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore
# - ineffective break statement. Did you mean to break out of the outer loop
#
# # gosec: Too many false-positives on 'unsafe' usage
# - Use of unsafe calls should be audited
#
# # gosec: Too many false-positives for parametrized shell calls
# - Subprocess launch(ed with variable|ing should be audited)
#
# # gosec: Duplicated errcheck checks
# - G104
#
# # gosec: Too many issues in popular repos
# - (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
#
# # gosec: False positive is triggered by 'src, err := ioutil.ReadFile(filename)'
# - Potential file inclusion via variable
# (default true)
# --max-issues-per-linter int Maximum issues count per one linter. Set to 0 to disable (default 50)
# --max-same-issues int Maximum count of issues with the same text. Set to 0 to disable (default 3)
# -n, --new Show only new issues: if there are unstaged changes or untracked files, only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing large codebase.
# It's not practical to fix all existing issues at the moment of integration: much better to not allow issues in new code.
# For CI setups, prefer --new-from-rev=HEAD~, as --new can skip linting the current patch if any scripts generate unstaged files before golangci-lint runs.
# --new-from-rev REV Show only new issues created after git revision REV
# --new-from-patch PATH Show only new issues created in git patch with file path PATH
# --fix Fix found issues (if it's supported by the linter)
# -h, --help help for linters
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
#
# Run the linters
#
# Usage:
# golangci-lint run [flags]
#
# Flags:
# --out-format string Format of output: colored-line-number|line-number|json|tab|checkstyle|code-climate|html|junit-xml|github-actions (default "colored-line-number")
# --print-issued-lines Print lines of code with issue (default true)
# --print-linter-name Print linter name in issue line (default true)
# --uniq-by-line Make issues output unique by line (default true)
# --sort-results Sort linter results
# --path-prefix string Path prefix to add to output
# --modules-download-mode string Modules download mode. If not empty, passed as -mod=<mode> to go tools
# --issues-exit-code int Exit code when issues were found (default 1)
# --build-tags strings Build tags
# --timeout duration Timeout for total work (default 1m0s)
# --tests Analyze tests (*_test.go) (default true)
# --print-resources-usage Print avg and max memory usage of golangci-lint and total time
# -c, --config PATH Read config from file path PATH
# --no-config Don't read config
# --skip-dirs strings Regexps of directories to skip
# --skip-dirs-use-default Use or not use default excluded directories:
# - (^|/)vendor($|/)
# - (^|/)third_party($|/)
# - (^|/)testdata($|/)
# - (^|/)examples($|/)
# - (^|/)Godeps($|/)
# - (^|/)builtin($|/)
# (default true)
# --skip-files strings Regexps of files to skip
# --allow-parallel-runners Allow multiple parallel golangci-lint instances running. If false (default) - golangci-lint acquires file lock on start.
# --allow-serial-runners Allow multiple golangci-lint instances running, but serialize them around a lock. If false (default) - golangci-lint exits with an error if it fails to acquire file lock on start.
# -E, --enable strings Enable specific linter
# -D, --disable strings Disable specific linter
# --enable-all Enable all linters
# --disable-all Disable all linters
# -p, --presets strings Enable presets (bugs|comment|complexity|error|format|import|metalinter|module|performance|sql|style|test|unused) of linters. Run 'golangci-lint linters' to see them. This option implies option --disable-all
# --fast Run only fast linters from enabled linters set (first run won't be fast)
# -e, --exclude strings Exclude issue by regexp
# --exclude-use-default Use or not use default excludes:
# # EXC0001 errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
# - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
#
# # EXC0002 golint: Annoying issue about not having a comment. The rare codebase has such comments
# - (comment on exported (method|function|type|const)|should have( a package)? comment|comment should be of the form)
#
# # EXC0003 golint: False positive when tests are defined in package 'test'
# - func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
#
# # EXC0004 govet: Common false positives
# - (possible misuse of unsafe.Pointer|should have signature)
#
# # EXC0005 staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore
# - ineffective break statement. Did you mean to break out of the outer loop
#
# # EXC0006 gosec: Too many false-positives on 'unsafe' usage
# - Use of unsafe calls should be audited
#
# # EXC0007 gosec: Too many false-positives for parametrized shell calls
# - Subprocess launch(ed with variable|ing should be audited)
#
# # EXC0008 gosec: Duplicated errcheck checks
# - (G104|G307)
#
# # EXC0009 gosec: Too many issues in popular repos
# - (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
#
# # EXC0010 gosec: False positive is triggered by 'src, err := ioutil.ReadFile(filename)'
# - Potential file inclusion via variable
#
# # EXC0011 stylecheck: Annoying issue about not having a comment. The rare codebase has such comments
# - (comment on exported (method|function|type|const)|should have( a package)? comment|comment should be of the form)
#
# # EXC0012 revive: Annoying issue about not having a comment. The rare codebase has such comments
# - exported (.+) should have comment( \(or a comment on this block\))? or be unexported
#
# # EXC0013 revive: Annoying issue about not having a comment. The rare codebase has such comments
# - package comment should be of the form "(.+)...
#
# # EXC0014 revive: Annoying issue about not having a comment. The rare codebase has such comments
# - comment on exported (.+) should be of the form "(.+)..."
#
# # EXC0015 revive: Annoying issue about not having a comment. The rare codebase has such comments
# - should have a package comment, unless it's in another file for this package
# (default true)
# --exclude-case-sensitive If set to true exclude and exclude rules regular expressions are case sensitive
# --max-issues-per-linter int Maximum issues count per one linter. Set to 0 to disable (default 50)
# --max-same-issues int Maximum count of issues with the same text. Set to 0 to disable (default 3)
# -n, --new Show only new issues: if there are unstaged changes or untracked files, only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing large codebase.
# It's not practical to fix all existing issues at the moment of integration: much better to not allow issues in new code.
# For CI setups, prefer --new-from-rev=HEAD~, as --new can skip linting the current patch if any scripts generate unstaged files before golangci-lint runs.
# --new-from-rev REV Show only new issues created after git revision REV
# --new-from-patch PATH Show only new issues created in git patch with file path PATH
# --whole-files Show issues in any part of update files (requires new-from-rev or new-from-patch)
# --fix Fix found issues (if it's supported by the linter)
# -h, --help help for run
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 20)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
#
# Version
#
# Usage:
# golangci-lint version [flags]
#
# Flags:
# -h, --help help for version
#
# Global Flags:
# --color string Use color when printing; can be 'always', 'auto', or 'never' (default "auto")
# -j, --concurrency int Concurrency (default NumCPU) (default 16)
# --cpu-profile-path string Path to CPU profile output file
# --mem-profile-path string Path to memory profile output file
# --trace-path string Path to trace output file
# -v, --verbose verbose output
# --version Print version
#
# -------------------------------------------------------------------------------
# vim:ft=zsh:et:sts=2:sw=2