glice

package module
v2.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2022 License: MIT Imports: 16 Imported by: 0

README

glice

Build Status Coverage Status Go Report Card

Golang license and dependency checker. Prints list of all dependencies, their URL, license and saves all the license files in /licenses.

Introduction

glice analyzes the go.mod file of your project and prints it in a tabular format - name, URL, and license short-name (MIT, GPL...).

Installation

Download and install glice by executing:

    go get github.com/ribice/glice/v2
    go install github.com/ribice/glice/v2/cmd/glice.go

To update:

    go get -u github.com/ribice/glice/v2

Usage

To run glice, navigate to a folder with go.mod and execute:

    glice

Alternatively, you can provide path which you want to be scanned with -p flag:

    glice -p "github.com/ribice/glice"

By default glice:

  • Prints only to stdout

  • Gets dependencies from go.mod

  • Fetch licenses for dependencies hosted on GitHub

  • Is limited to 60 API calls on GitHub (up to 60 dependencies from github.com). API key can be provided by setting GITHUB_API_KEY environment variable.

All flags are optional. Glice supports the following flags:

- f [boolean, fileWrite] // Writes all licenses to /licenses dir
- i [boolean, indirect] // Parses indirect dependencies as well
- p [string - path] // Path to be scanned in form of github.com/author/repo
- t [boolean - thanks] // if GitHub API key is provided, setting this flag will star all GitHub repos from dependency. __In order to do this, API key must have access to public_repo__

Don't forget -help flag for detailed usage information.

Using glice inside as a library

As of v2.0.0 glice can be used as a library and provides few functions/methods that return list of dependencies in structured format and printing to io.Writer.

Sample output

Executing glice -c on github.com/ribice/glice prints (with additional colors for links and licenses):

+-----------------------------------+-------------------------------------------+--------------+
|            DEPENDENCY             |                  REPOURL                  |   LICENSE    |
+-----------------------------------+-------------------------------------------+--------------+
| github.com/fatih/color            | https://github.com/fatih/color            | MIT          |
| github.com/google/go-github       | https://github.com/google/go-github       | bsd-3-clause |
| github.com/keighl/metabolize      | https://github.com/keighl/metabolize      | Other        |
| github.com/olekukonko/tablewriter | https://github.com/olekukonko/tablewriter | MIT          |
| golang.org/x/mod                  | https://go.googlesource.com/mod           |              |
| golang.org/x/oauth2               | https://go.googlesource.com/oauth2        |              |
+-----------------------------------+-------------------------------------------+--------------+

License

glice is licensed under the MIT license. Check the LICENSE file for details.

Author

Emir Ribic

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoGoMod is returned when path doesn't contain go.mod file
	ErrNoGoMod = errors.New("no go.mod file present")

	// ErrNoAPIKey is returned when thanks flag is enabled without providing GITHUB_API_KEY env variable
	ErrNoAPIKey = errors.New("cannot use thanks feature without github api key")
)

Functions

func Print

func Print(path string, indirect bool, writeTo io.Writer) error

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(path string) (*Client, error)

func (*Client) ParseDependencies

func (c *Client) ParseDependencies(includeIndirect, thanks bool) error

func (*Client) Print

func (c *Client) Print(output io.Writer)

func (*Client) WriteLicensesToFile

func (c *Client) WriteLicensesToFile() error

type Repository

type Repository struct {
	Name      string
	Shortname string
	URL       string
	Host      string
	Author    string
	Project   string
	Text      string
}

Repository holds information about the repository

func ListRepositories

func ListRepositories(path string, withIndirect bool) ([]*Repository, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL