logginghandler/vendor/github.com/sivchari/tenv
Marvin Preuss d095180eb4
All checks were successful
continuous-integration/drone/push Build is passing
build: uses go modules for tool handling
2022-01-14 13:51:56 +01:00
..
.gitignore build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
.golangci.yml build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
go.mod build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
go.sum build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
LICENSE build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
README.md build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00
tenv.go build: uses go modules for tool handling 2022-01-14 13:51:56 +01:00

tenv

tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17

test_and_lint

Instruction

go install github.com/sivchari/tenv/cmd/tenv

Usage

package sandbox_test

import (
        "os"
        "testing"
)

var (
        e = os.Setenv("a", "b")
        _ = e
)

func setup() {
        os.Setenv("a", "b")
        err := os.Setenv("a", "b")
        if err != nil {
                _ = err
        }
}

func TestF(t *testing.T) {
        setup()
        os.Setenv("a", "b")
        if err := os.Setenv("a", "b"); err != nil {
                _ = err
        }
}

fish

go vet -vettool=(which tenv) sandbox_test.go

# command-line-arguments
./sandbox_test.go:9:2: variable e is not using t.Setenv
./sandbox_test.go:14:2: func setup is not using t.Setenv
./sandbox_test.go:15:2: func setup is not using t.Setenv
./sandbox_test.go:23:2: func TestF is not using t.Setenv
./sandbox_test.go:24:2: func TestF is not using t.Setenv

bash

$ go vet -vettool=`which tenv` main.go

# command-line-arguments
./sandbox_test.go:9:2: variable e is not using t.Setenv
./sandbox_test.go:14:2: func setup is not using t.Setenv
./sandbox_test.go:15:2: func setup is not using t.Setenv
./sandbox_test.go:23:2: func TestF is not using t.Setenv
./sandbox_test.go:24:2: func TestF is not using t.Setenv

option

t.Setenv can use since Go1.17. This linter diagnostics, if Go version is since 1.17. But, if you wanna exec this linter in prior Go1.17, you can use it that you set -tenv.f flag.

e.g.

fish

go vet -vettool=(which tenv) -tenv.f sandbox_test.go

bash

go vet -vettool=`which tenv` -tenv.f main.go

CI

CircleCI

- run:
    name: Install tenv
    command: go install github.com/sivchari/tenv

- run:
    name: Run tenv
    command: go vet -vettool=`which tenv` ./...

GitHub Actions

- name: Install tenv
  run: go install github.com/sivchari/tenv

- name: Run tenv
  run: go vet -vettool=`which tenv` ./...