An open API service indexing awesome lists of open source software.

https://github.com/leighmcculloch/gochecknoinits

Check that no init functions are present in Go code.
https://github.com/leighmcculloch/gochecknoinits

Last synced: about 1 month ago
JSON representation

Check that no init functions are present in Go code.

Awesome Lists containing this project

README

        

# gochecknoinits

[![Build Status](https://img.shields.io/travis/leighmcculloch/gochecknoinits.svg)](https://travis-ci.org/leighmcculloch/gochecknoinits)
[![Go Report Card](https://goreportcard.com/badge/github.com/leighmcculloch/gochecknoinits)](https://goreportcard.com/report/github.com/leighmcculloch/gochecknoinits)

Check that no inits functions are present in Go code.

## Why

Init functions cause an import to have side effects, and side effects are hard to test, reduce readability and increase the complexity of code.

https://peter.bourgon.org/blog/2017/06/09/theory-of-modern-go.html
https://twitter.com/davecheney/status/871939730761547776

## Install

```
go get 4d63.com/gochecknoinits
```

## Usage

```
gochecknoinits
```

```
gochecknoinits ./...
```

```
gochecknoinits [path] [path] [path] [etc]
```

Add `-t` to include tests.

```
gochecknoinits -t [path]
```

Note: Paths are only inspected recursively if the Go `/...` recursive path suffix is appended to the path.