Browse Source
* ci: Use golangci's github action for linting Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix most of the staticcheck lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the prealloc lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the misspell lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the varcheck lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the errcheck lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the bodyclose lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the deadcode lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the unused lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the gosec lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the gosimple lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the ineffassign lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Fix the staticcheck lint errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Revert the misspell change, use a neutral English Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Remove broken golangci-lint CI job Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Re-add errantly-removed weakrand initialization Signed-off-by: Dave Henderson <dhenderson@gmail.com> * don't break the loop and return * Removing extra handling for null rootKey * unignore RegisterModule/RegisterAdapter Co-authored-by: Mohammed Al Sahaf <msaa1990@gmail.com> * single-line log message Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Fix lint after a1808b0dbf209c615e438a496d257ce5e3acdce2 was merged Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Revert ticker change, ignore it instead Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Ignore some of the write errors Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Remove blank line Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Use lifetime Signed-off-by: Dave Henderson <dhenderson@gmail.com> * close immediately Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Preallocate configVals Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Update modules/caddytls/distributedstek/distributedstek.go Co-authored-by: Mohammed Al Sahaf <msaa1990@gmail.com> Co-authored-by: Matt Holt <mholt@users.noreply.github.com>master
Dave Henderson
4 years ago
committed by
GitHub
41 changed files with 256 additions and 199 deletions
@ -0,0 +1,23 @@ |
|||
name: Lint |
|||
|
|||
on: |
|||
push: |
|||
branches: |
|||
- master |
|||
pull_request: |
|||
branches: |
|||
- master |
|||
|
|||
jobs: |
|||
# From https://github.com/golangci/golangci-lint-action |
|||
golangci: |
|||
name: lint |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- uses: actions/checkout@v2 |
|||
- name: golangci-lint |
|||
uses: golangci/golangci-lint-action@v2 |
|||
with: |
|||
version: v1.31 |
|||
# Optional: show only new issues if it's a pull request. The default value is `false`. |
|||
# only-new-issues: true |
@ -1,37 +0,0 @@ |
|||
// Copyright 2015 Matthew Holt and The Caddy Authors
|
|||
//
|
|||
// 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.
|
|||
|
|||
// +build !windows
|
|||
|
|||
package caddycmd |
|||
|
|||
import ( |
|||
"fmt" |
|||
"os" |
|||
"path/filepath" |
|||
"syscall" |
|||
) |
|||
|
|||
func gracefullyStopProcess(pid int) error { |
|||
fmt.Print("Graceful stop... ") |
|||
err := syscall.Kill(pid, syscall.SIGINT) |
|||
if err != nil { |
|||
return fmt.Errorf("kill: %v", err) |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
func getProcessName() string { |
|||
return filepath.Base(os.Args[0]) |
|||
} |
@ -1,44 +0,0 @@ |
|||
// Copyright 2015 Matthew Holt and The Caddy Authors
|
|||
//
|
|||
// 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.
|
|||
|
|||
package caddycmd |
|||
|
|||
import ( |
|||
"fmt" |
|||
"os" |
|||
"os/exec" |
|||
"path/filepath" |
|||
"strconv" |
|||
) |
|||
|
|||
func gracefullyStopProcess(pid int) error { |
|||
fmt.Print("Forceful stop... ") |
|||
// process on windows will not stop unless forced with /f
|
|||
cmd := exec.Command("taskkill", "/pid", strconv.Itoa(pid), "/f") |
|||
if err := cmd.Run(); err != nil { |
|||
return fmt.Errorf("taskkill: %v", err) |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
// On Windows the app name passed in os.Args[0] will match how
|
|||
// caddy was started eg will match caddy or caddy.exe.
|
|||
// So return appname with .exe for consistency
|
|||
func getProcessName() string { |
|||
base := filepath.Base(os.Args[0]) |
|||
if filepath.Ext(base) == "" { |
|||
return base + ".exe" |
|||
} |
|||
return base |
|||
} |
@ -0,0 +1,40 @@ |
|||
package fileserver |
|||
|
|||
import ( |
|||
"testing" |
|||
) |
|||
|
|||
func TestBreadcrumbs(t *testing.T) { |
|||
testdata := []struct { |
|||
path string |
|||
expected []crumb |
|||
}{ |
|||
{"", []crumb{}}, |
|||
{"/", []crumb{{Text: "/"}}}, |
|||
{"foo/bar/baz", []crumb{ |
|||
{Link: "../../", Text: "foo"}, |
|||
{Link: "../", Text: "bar"}, |
|||
{Link: "", Text: "baz"}, |
|||
}}, |
|||
{"/qux/quux/corge/", []crumb{ |
|||
{Link: "../../../", Text: "/"}, |
|||
{Link: "../../", Text: "qux"}, |
|||
{Link: "../", Text: "quux"}, |
|||
{Link: "", Text: "corge"}, |
|||
}}, |
|||
} |
|||
|
|||
for _, d := range testdata { |
|||
l := browseListing{Path: d.path} |
|||
actual := l.Breadcrumbs() |
|||
if len(actual) != len(d.expected) { |
|||
t.Errorf("wrong size output, got %d elements but expected %d", len(actual), len(d.expected)) |
|||
continue |
|||
} |
|||
for i, c := range actual { |
|||
if c != d.expected[i] { |
|||
t.Errorf("got %#v but expected %#v at index %d", c, d.expected[i], i) |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,30 @@ |
|||
package reverseproxy |
|||
|
|||
import ( |
|||
"bytes" |
|||
"strings" |
|||
"testing" |
|||
) |
|||
|
|||
func TestHandlerCopyResponse(t *testing.T) { |
|||
h := Handler{} |
|||
testdata := []string{ |
|||
"", |
|||
strings.Repeat("a", defaultBufferSize), |
|||
strings.Repeat("123456789 123456789 123456789 12", 3000), |
|||
} |
|||
dst := bytes.NewBuffer(nil) |
|||
|
|||
for _, d := range testdata { |
|||
src := bytes.NewBuffer([]byte(d)) |
|||
dst.Reset() |
|||
err := h.copyResponse(dst, src, 0) |
|||
if err != nil { |
|||
t.Errorf("failed with error: %v", err) |
|||
} |
|||
out := dst.String() |
|||
if out != d { |
|||
t.Errorf("bad read: got %q", out) |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue