mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 02:00:43 +00:00
Merge pull request #51 from tomwilkie/lint
Add lint script, run in circle ci.
This commit is contained in:
8
Makefile
8
Makefile
@@ -16,15 +16,15 @@ dist: client static $(APP_EXE) $(PROBE_EXE)
|
||||
client:
|
||||
cd client && make build && rm -f dist/.htaccess
|
||||
|
||||
static:
|
||||
app/static.go:
|
||||
go get github.com/mjibson/esc
|
||||
cd app && esc -o static.go -prefix ../client/dist ../client/dist
|
||||
esc -o app/static.go -prefix client/dist client/dist
|
||||
|
||||
test: $(APP_EXE) $(FIXPROBE_EXE)
|
||||
# app and fixprobe needed for integration tests
|
||||
go test ./...
|
||||
|
||||
$(APP_EXE): app/*.go report/*.go xfer/*.go
|
||||
$(APP_EXE): app/*.go app/static.go report/*.go xfer/*.go
|
||||
$(PROBE_EXE): probe/*.go report/*.go xfer/*.go
|
||||
|
||||
$(APP_EXE) $(PROBE_EXE):
|
||||
@@ -41,4 +41,4 @@ $(SCOPE_EXPORT): $(APP_EXE) $(PROBE_EXE) docker/Dockerfile docker/entrypoint.sh
|
||||
|
||||
clean:
|
||||
go clean ./...
|
||||
rm -f $(SCOPE_EXPORT)
|
||||
rm -f $(SCOPE_EXPORT) app/static.go
|
||||
|
||||
87
bin/lint
Executable file
87
bin/lint
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
# This scipt lints go files for common errors.
|
||||
#
|
||||
# Its runs gofmt and go vet, and optionally golint and
|
||||
# gocyclo, if they are installed.
|
||||
#
|
||||
# With no arguments, it lints the current files staged
|
||||
# for git commit. Or you can pass it explicit filenames
|
||||
# (or directories) and it will lint them.
|
||||
#
|
||||
# To use this script automatically, run:
|
||||
# ln -s ../../bin/lint .git/hooks/pre-commit
|
||||
|
||||
set -eu
|
||||
|
||||
function lint_go {
|
||||
filename="$1"
|
||||
result=0
|
||||
|
||||
if [ -n "$(gofmt -s -l "${filename}")" ]; then
|
||||
result=1
|
||||
echo "${filename}: run gofmt -s -w ${filename}!"
|
||||
fi
|
||||
|
||||
go tool vet "${filename}" || result=$?
|
||||
|
||||
# golint is completely optional. If you don't like it
|
||||
# don't have it installed.
|
||||
if type golint >/dev/null 2>&1; then
|
||||
# golint doesn't set an exit code it seems
|
||||
lintoutput=$(golint "${filename}")
|
||||
if [ "$lintoutput" != "" ]; then
|
||||
result=1
|
||||
echo "$lintoutput"
|
||||
fi
|
||||
fi
|
||||
|
||||
# gocyclo is completely optional. If you don't like it
|
||||
# don't have it installed. Also never blocks a commit,
|
||||
# it just warns.
|
||||
if type gocyclo >/dev/null 2>&1; then
|
||||
gocyclo -over 25 "${filename}" | while read line; do
|
||||
echo "${filename}": higher than 25 cyclomatic complexity - "${line}"
|
||||
done
|
||||
fi
|
||||
|
||||
return $result
|
||||
}
|
||||
|
||||
function lint {
|
||||
filename="$1"
|
||||
ext="${filename##*\.}"
|
||||
|
||||
# Don't lint deleted files
|
||||
if [ ! -f "$filename" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Don't lint this script or static.go
|
||||
case "${filename}" in
|
||||
bin/lint) return;;
|
||||
./app/static.go) return;;
|
||||
esac
|
||||
|
||||
case "$ext" in
|
||||
go) lint_go "${filename}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function lint_files {
|
||||
lint_result=0
|
||||
while read filename; do
|
||||
lint "${filename}" || lint_result=1
|
||||
done
|
||||
exit $lint_result
|
||||
}
|
||||
|
||||
function list_files {
|
||||
if [ $# -gt 0 ]; then
|
||||
find "$@" -type f
|
||||
else
|
||||
git diff --cached --name-only
|
||||
fi
|
||||
}
|
||||
|
||||
list_files "$@" | lint_files
|
||||
@@ -13,12 +13,15 @@ machine:
|
||||
|
||||
dependencies:
|
||||
post:
|
||||
- go get github.com/golang/lint/golint
|
||||
- go get github.com/fzipp/gocyclo
|
||||
- go get github.com/mattn/goveralls
|
||||
- mkdir -p $(dirname $SRCDIR)
|
||||
- cp -r $(pwd)/ $SRCDIR
|
||||
|
||||
test:
|
||||
override:
|
||||
- cd $SRCDIR; ./bin/lint .
|
||||
- cd $SRCDIR; make
|
||||
- cd $SRCDIR; ./bin/test
|
||||
post:
|
||||
|
||||
@@ -20,7 +20,7 @@ func DemoReport(nodeCount int) report.Report {
|
||||
// Make up some plausible IPv4 numbers
|
||||
hosts := []string{}
|
||||
ip := [4]int{192, 168, 1, 1}
|
||||
for _ = range make([]struct{}, nodeCount) {
|
||||
for range make([]struct{}, nodeCount) {
|
||||
hosts = append(hosts, fmt.Sprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]))
|
||||
ip[3]++
|
||||
if ip[3] > 200 {
|
||||
|
||||
@@ -46,7 +46,7 @@ func main() {
|
||||
|
||||
log.Printf("listening on %s", *listenAddress)
|
||||
|
||||
for _ = range time.Tick(*publishInterval) {
|
||||
for range time.Tick(*publishInterval) {
|
||||
publisher.Publish(fixedReport)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ func DemoReport(nodeCount int) report.Report {
|
||||
// Make up some plausible IPv4 numbers
|
||||
hosts := []string{}
|
||||
ip := [4]int{192, 168, 1, 1}
|
||||
for _ = range make([]struct{}, nodeCount) {
|
||||
for range make([]struct{}, nodeCount) {
|
||||
hosts = append(hosts, fmt.Sprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]))
|
||||
ip[3]++
|
||||
if ip[3] > 200 {
|
||||
|
||||
@@ -57,7 +57,7 @@ func (m *cgroupMapper) Map(pid uint) (string, error) {
|
||||
}
|
||||
|
||||
func (m *cgroupMapper) loop(d time.Duration) {
|
||||
for _ = range time.Tick(d) {
|
||||
for range time.Tick(d) {
|
||||
m.update()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,14 +38,14 @@ var (
|
||||
fixProcessPIDB = uint(4243)
|
||||
|
||||
fixConnections = []procspy.Connection{
|
||||
procspy.Connection{
|
||||
{
|
||||
Transport: "tcp",
|
||||
LocalAddress: fixLocalAddress,
|
||||
LocalPort: fixLocalPort,
|
||||
RemoteAddress: fixRemoteAddress,
|
||||
RemotePort: fixRemotePort,
|
||||
},
|
||||
procspy.Connection{
|
||||
{
|
||||
Transport: "tcp",
|
||||
LocalAddress: fixLocalAddress,
|
||||
LocalPort: fixLocalPort,
|
||||
@@ -55,7 +55,7 @@ var (
|
||||
}
|
||||
|
||||
fixConnectionsWithProcesses = []procspy.Connection{
|
||||
procspy.Connection{
|
||||
{
|
||||
Transport: "tcp",
|
||||
LocalAddress: fixLocalAddress,
|
||||
LocalPort: fixLocalPort,
|
||||
@@ -66,7 +66,7 @@ var (
|
||||
Name: fixProcessName,
|
||||
},
|
||||
},
|
||||
procspy.Connection{
|
||||
{
|
||||
Transport: "tcp",
|
||||
LocalAddress: fixLocalAddress,
|
||||
LocalPort: fixLocalPort,
|
||||
|
||||
Reference in New Issue
Block a user