-
Notifications
You must be signed in to change notification settings - Fork 58
/
check.sh
executable file
·54 lines (49 loc) · 2.23 KB
/
check.sh
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
#!/bin/bash
#
# Copyright (c) 2008-2022, Hazelcast, Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License")
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Runs various linters
# Note that we filter out
# - should have signature WriteByte(byte) error
# - should have signature ReadByte() (byte, error)
# And the following packages which contain the functions above:
# - github.com/hazelcast/hazelcast-go-client/serialization
# - github.com/hazelcast/hazelcast-go-client/internal/serialization
# And exclude any files with "org-website" in the path because these
# are examples
go vet -tags hazelcastinternal ./... 2>&1 | \
grep -v "should have signature WriteByte(byte) error" | \
grep -v "should have signature ReadByte() (byte, error)" | \
grep -v "# github.com/hazelcast/hazelcast-go-client/serialization" | \
grep -v "# github.com/hazelcast/hazelcast-go-client/internal/serialization" | \
grep -v "org-website" \
|| true
staticcheck -tags hazelcastinternal $(go list ./... | grep -v org-website) | \
grep -v -E 'client_it_test.go.*SA1012' | \
grep -v -E 'internal/sql/driver/driver_test.go.*SA1012'
# Ensure fields are optimally aligned
# From: https://pkg.go.dev/golang.org/x/[email protected]/go/analysis/passes/fieldalignment
# If missing install via: go get -u golang.org/x/tools/...
# Structs in following files should not be sorted due to: https://pkg.go.dev/sync/atomic#pkg-note-BUG
fieldalignment -tags $(go list ./... | grep -v org-website | grep -v examples) 2>&1 | \
grep -v "internal/cluster/connection_manager.go" | \
grep -v "internal/cluster/view_listener_service.go" | \
grep -v "flake_id_generator.go" | \
grep -v "record_store.go" | \
grep -v "record.go" | \
grep -v "stats.go" | \
grep -v "nearcache/types.go" | \
grep -v "nearcache/repairing_task.go" \
|| true