refactoring

This commit is contained in:
Robert Kaussow 2020-09-21 20:24:51 +02:00
parent c6d5f7f290
commit ac2276d118
No known key found for this signature in database
GPG Key ID: 65362AE74AF98B61
32 changed files with 349 additions and 257 deletions

190
.drone.jsonnet Normal file
View File

@ -0,0 +1,190 @@
local PipelineTest = {
kind: 'pipeline',
name: 'test',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'staticcheck',
image: 'golang:1.14',
commands: [
'go run honnef.co/go/tools/cmd/staticcheck ./...',
],
volumes: [
{
name: 'gopath',
path: '/go',
},
],
},
{
name: 'lint',
image: 'golang:1.14',
commands: [
'go run golang.org/x/lint/golint -set_exit_status ./...',
],
volumes: [
{
name: 'gopath',
path: '/go',
},
],
},
{
name: 'vet',
image: 'golang:1.14',
commands: [
'go vet ./...',
],
volumes: [
{
name: 'gopath',
path: '/go',
},
],
},
{
name: 'test',
image: 'golang:1.14',
commands: [
'go test -race -coverprofile=coverage.txt -covermode=atomic ./...',
],
volumes: [
{
name: 'gopath',
path: '/go',
},
],
},
{
name: 'coverage',
image: 'plugins/codecov',
settings: {
token: {
from_secret: 'codecov_token',
},
files: [
'coverage.txt',
],
},
},
],
volumes: [
{
name: 'gopath',
temp: {},
},
],
trigger: {
ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineBuildBinaries = {
kind: 'pipeline',
name: 'build-binaries',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'build',
image: 'techknowlogick/xgo:go-1.14.x',
commands: [
'[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}',
'mkdir -p release/',
"cd cmd/github-releases-notifier && xgo -ldflags \"-s -w -X main.version=$BUILD_VERSION\" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out github-releases-notifier .",
'mv /build/* /drone/src/release/',
],
},
{
name: 'executable',
image: 'alpine',
commands: [
'$(find release/ -executable -type f | grep github-releases-notifier-linux-amd64) --help',
],
},
{
name: 'compress',
image: 'alpine',
commands: [
'apk add upx',
'find release/ -maxdepth 1 -executable -type f -exec upx {} \\;',
'ls -lh release/',
],
},
{
name: 'checksum',
image: 'alpine',
commands: [
'cd release/ && sha256sum * > sha256sum.txt',
],
},
{
name: 'publish',
image: 'plugins/github-release',
settings: {
overwrite: true,
api_key: {
from_secret: 'github_token',
},
files: ['release/*'],
title: '${DRONE_TAG}',
note: 'CHANGELOG.md',
},
when: {
ref: [
'refs/tags/**',
],
},
},
],
depends_on: [
'test',
],
trigger: {
ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineNotifications = {
kind: 'pipeline',
name: 'notifications',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'matrix',
image: 'plugins/matrix',
settings: {
homeserver: { from_secret: 'matrix_homeserver' },
roomid: { from_secret: 'matrix_roomid' },
template: 'Status: **{{ build.status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}<br/> Message: {{ build.message }}',
username: { from_secret: 'matrix_username' },
password: { from_secret: 'matrix_password' },
},
when: {
status: ['success', 'failure'],
},
},
],
depends_on: [
'build-binaries',
],
trigger: {
ref: ['refs/heads/master', 'refs/tags/**'],
status: ['success', 'failure'],
},
};
[
PipelineTest,
PipelineBuildBinaries,
PipelineNotifications,
]

View File

@ -1,171 +0,0 @@
def main(ctx):
before = testing()
stages = [
binaries([]),
]
after = notification()
for b in before:
for s in stages:
s['depends_on'].append(b['name'])
for s in stages:
for a in after:
a['depends_on'].append(s['name'])
return before + stages + after
def testing():
return [{
'kind': 'pipeline',
'type': 'docker',
'name': 'testing',
'platform': {
'os': 'linux',
'arch': 'amd64',
},
'steps': [
{
'name': 'vet',
'image': 'golang:1.12',
'commands': [
'go vet ./...'
],
},
{
'name': 'test',
'image': 'golang:1.12',
'commands': [
'go test -race -coverprofile=coverage.txt -covermode=atomic ./...'
],
},
{
'name': 'coverage',
'image': 'plugins/codecov',
'settings': {
'token': {
'from_secret': 'codecov_token',
},
'files':[
'coverage.txt'
],
},
},
],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
'refs/pull/**'
]
}
}]
def binaries(arch):
return {
'kind': 'pipeline',
'type': 'docker',
'name': 'build-binaries',
'steps': [
{
'name': 'build',
'image': 'techknowlogick/xgo:latest',
'commands': [
'[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}',
'mkdir -p release/',
"cd cmd/url-parser && xgo -ldflags \"-s -w -X main.Version=$BUILD_VERSION\" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out url-parser-$BUILD_VERSION .",
'cp /build/* /drone/src/release/'
]
},
{
'name': 'executable',
'image': 'alpine',
'commands': [
'$(find release/ -executable -type f | grep url-parser-.*-linux-amd64) --help',
]
},
{
'name': 'compress',
'image': 'alpine',
'commands': [
'apk add upx',
'find release/ -maxdepth 1 -executable -type f -exec upx {} \;',
'ls -lh release/',
]
},
{
'name': 'checksum',
'image': 'alpine',
'commands': [
'cd release/ && sha256sum * > sha256sum.txt',
],
},
{
'name': 'publish',
'image': 'plugins/github-release',
'settings': {
'overwrite': True,
'api_key': {
'from_secret': 'github_token'
},
'files': [ "release/*" ],
'title': '${DRONE_TAG}',
'note': 'CHANGELOG.md',
},
'when': {
'ref': [
'refs/tags/**'
]
}
}
],
'depends_on': [],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
'refs/pull/**'
]
}
}
def notification():
return [{
'kind': 'pipeline',
'type': 'docker',
'name': 'notification',
'steps': [
{
'name': 'matrix',
'image': 'plugins/matrix',
'settings': {
'homeserver': {
'from_secret': 'matrix_homeserver',
},
'password': {
'from_secret': 'matrix_password',
},
'roomid': {
'from_secret': 'matrix_roomid',
},
'template': 'Status: **{{ build.status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}<br/> Message: {{ build.message }}',
'username': {
'from_secret': 'matrix_username',
},
},
},
],
'depends_on': [],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
],
'status': [
'success',
'failure'
]
}
}]

View File

@ -1,22 +1,43 @@
--- ---
kind: pipeline kind: pipeline
type: docker name: test
name: testing
platform: platform:
os: linux os: linux
arch: amd64 arch: amd64
steps: steps:
- name: staticcheck
image: golang:1.14
commands:
- go run honnef.co/go/tools/cmd/staticcheck ./...
volumes:
- name: gopath
path: /go
- name: lint
image: golang:1.14
commands:
- go run golang.org/x/lint/golint -set_exit_status ./...
volumes:
- name: gopath
path: /go
- name: vet - name: vet
image: golang:1.12 image: golang:1.14
commands: commands:
- go vet ./... - go vet ./...
volumes:
- name: gopath
path: /go
- name: test - name: test
image: golang:1.12 image: golang:1.14
commands: commands:
- go test -race -coverprofile=coverage.txt -covermode=atomic ./... - go test -race -coverprofile=coverage.txt -covermode=atomic ./...
volumes:
- name: gopath
path: /go
- name: coverage - name: coverage
image: plugins/codecov image: plugins/codecov
@ -26,6 +47,10 @@ steps:
token: token:
from_secret: codecov_token from_secret: codecov_token
volumes:
- name: gopath
temp: {}
trigger: trigger:
ref: ref:
- refs/heads/master - refs/heads/master
@ -34,7 +59,6 @@ trigger:
--- ---
kind: pipeline kind: pipeline
type: docker
name: build-binaries name: build-binaries
platform: platform:
@ -43,17 +67,17 @@ platform:
steps: steps:
- name: build - name: build
image: techknowlogick/xgo:latest image: techknowlogick/xgo:go-1.14.x
commands: commands:
- "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}"
- mkdir -p release/ - mkdir -p release/
- cd cmd/url-parser && xgo -ldflags "-s -w -X main.Version=$BUILD_VERSION" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out url-parser-$BUILD_VERSION . - cd cmd/github-releases-notifier && xgo -ldflags "-s -w -X main.version=$BUILD_VERSION" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm64' -out github-releases-notifier .
- cp /build/* /drone/src/release/ - mv /build/* /drone/src/release/
- name: executable - name: executable
image: alpine image: alpine
commands: commands:
- $(find release/ -executable -type f | grep url-parser-.*-linux-amd64) --help - $(find release/ -executable -type f | grep github-releases-notifier-linux-amd64) --help
- name: compress - name: compress
image: alpine image: alpine
@ -88,12 +112,11 @@ trigger:
- refs/pull/** - refs/pull/**
depends_on: depends_on:
- testing - test
--- ---
kind: pipeline kind: pipeline
type: docker name: notifications
name: notification
platform: platform:
os: linux os: linux
@ -112,6 +135,10 @@ steps:
template: "Status: **{{ build.status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}<br/> Message: {{ build.message }}" template: "Status: **{{ build.status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}<br/> Message: {{ build.message }}"
username: username:
from_secret: matrix_username from_secret: matrix_username
when:
status:
- success
- failure
trigger: trigger:
ref: ref:
@ -126,6 +153,6 @@ depends_on:
--- ---
kind: signature kind: signature
hmac: 999c45dd679c809e8dc40c3f72d4e6a3f95c5f57f14ca2aba3472b7226893d13 hmac: 5ca11cf4dc76a28155711c9665abeab4a3e61a5bd8c819588a76ba8baef16cfe
... ...

55
.github/settings.yml vendored Normal file
View File

@ -0,0 +1,55 @@
repository:
name: url-parser
description: Simple command-line URL parser
topics: cli, tools, url, parser
private: false
has_issues: true
has_wiki: false
has_downloads: true
default_branch: master
allow_squash_merge: true
allow_merge_commit: true
allow_rebase_merge: true
labels:
- name: bug
color: d73a4a
description: Something isn't working
- name: documentation
color: 0075ca
description: Improvements or additions to documentation
- name: duplicate
color: cfd3d7
description: This issue or pull request already exists
- name: enhancement
color: a2eeef
description: New feature or request
- name: good first issue
color: 7057ff
description: Good for newcomers
- name: help wanted
color: 008672
description: Extra attention is needed
- name: invalid
color: e4e669
description: This doesn't seem right
- name: question
color: d876e3
description: Further information is requested
- name: wontfix
color: ffffff
description: This will not be worked on
branches:
- name: master
protection:
required_pull_request_reviews: null
required_status_checks:
strict: true
contexts:
- continuous-integration/drone/pr
enforce_admins: null
restrictions: null

19
.gitignore vendored
View File

@ -1,17 +1,4 @@
# Binaries for programs and plugins /release/
*.exe /url-parser*
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c` coverage.out
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
/url-parser
coverage.txt

View File

@ -1,2 +1,2 @@
* FEATURE - INTERNAL
* Initial release - refactor project structure

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2020 Robert Kaussow <mail@geeklabor.de> Copyright (c) 2020 Robert Kaussow <mail@thegeeklab.de>
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,9 +1,14 @@
# url-parser # url-parser
[![Build Status](https://img.shields.io/drone/build/xoxys/url-parser?logo=drone)](https://cloud.drone.io/xoxys/url-parser) Simple command-line URL parser
[![Build Status](https://img.shields.io/drone/build/thegeeklab/url-parser?logo=drone)](https://cloud.drone.io/thegeeklab/url-parser)
[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/url-parser)
[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/url-parser)
[![Go Report Card](https://goreportcard.com/badge/github.com/thegeeklab/url-parser)](https://goreportcard.com/report/github.com/thegeeklab/url-parser)
[![Codecov](https://img.shields.io/codecov/c/github/xoxys/url-parser)](https://codecov.io/gh/xoxys/url-parser) [![Codecov](https://img.shields.io/codecov/c/github/xoxys/url-parser)](https://codecov.io/gh/xoxys/url-parser)
[![Go Report Card](https://goreportcard.com/badge/github.com/xoxys/url-parser)](https://goreportcard.com/report/github.com/xoxys/url-parser) [![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/url-parser)
[![License: MIT](https://img.shields.io/github/license/xoxys/url-parser)](LICENSE) [![License: MIT](https://img.shields.io/github/license/thegeeklab/url-parser)](<[LICENSE](https://github.com/thegeeklab/url-parser/blob/master/LICENSE)>)
Inspired by [herloct/url-parser](https://github.com/herloct/url-parser), a simple command-line utility for parsing URLs. Inspired by [herloct/url-parser](https://github.com/herloct/url-parser), a simple command-line utility for parsing URLs.
@ -12,7 +17,7 @@ Inspired by [herloct/url-parser](https://github.com/herloct/url-parser), a simpl
Prebuild multiarch binaries are availabe for Linux only: Prebuild multiarch binaries are availabe for Linux only:
```Shell ```Shell
curl -L https://github.com/xoxys/url-parser/releases/download/v0.1.0/url-parser-0.1.0-linux-amd64 > /usr/local/bin/url-parser curl -L https://github.com/thegeeklab/url-parser/releases/download/v0.1.0/url-parser-0.1.0-linux-amd64 > /usr/local/bin/url-parser
chmod +x /usr/local/bin/url-parser chmod +x /usr/local/bin/url-parser
url-parser --help url-parser --help
``` ```
@ -73,7 +78,3 @@ somevalue
## License ## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Maintainers and Contributors
[Robert Kaussow](https://github.com/xoxys)

View File

@ -1,8 +1,8 @@
package main package main
import ( import (
"github.com/thegeeklab/url-parser/internal/command"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/xoxys/url-parser/commands"
) )
func globalFlags() []cli.Flag { func globalFlags() []cli.Flag {
@ -21,63 +21,63 @@ func configCommands() []*cli.Command {
Name: "all", Name: "all",
Aliases: []string{"a"}, Aliases: []string{"a"},
Usage: "Get all parts from url", Usage: "Get all parts from url",
Action: commands.Run, Action: command.Run,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "scheme", Name: "scheme",
Aliases: []string{"s"}, Aliases: []string{"s"},
Usage: "Get scheme from url", Usage: "Get scheme from url",
Action: commands.Scheme, Action: command.Scheme,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "user", Name: "user",
Aliases: []string{"u"}, Aliases: []string{"u"},
Usage: "Get username from url", Usage: "Get username from url",
Action: commands.User, Action: command.User,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "password", Name: "password",
Aliases: []string{"pw"}, Aliases: []string{"pw"},
Usage: "Get password from url", Usage: "Get password from url",
Action: commands.Password, Action: command.Password,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "path", Name: "path",
Aliases: []string{"pt"}, Aliases: []string{"pt"},
Usage: "Get path from url", Usage: "Get path from url",
Action: commands.Path, Action: command.Path,
Flags: append(globalFlags(), commands.PathFlags()...), Flags: append(globalFlags(), command.PathFlags()...),
}, },
{ {
Name: "host", Name: "host",
Aliases: []string{"h"}, Aliases: []string{"h"},
Usage: "Get hostname from url", Usage: "Get hostname from url",
Action: commands.Host, Action: command.Host,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "port", Name: "port",
Aliases: []string{"p"}, Aliases: []string{"p"},
Usage: "Get port from url", Usage: "Get port from url",
Action: commands.Port, Action: command.Port,
Flags: globalFlags(), Flags: globalFlags(),
}, },
{ {
Name: "query", Name: "query",
Aliases: []string{"q"}, Aliases: []string{"q"},
Usage: "Get query from url", Usage: "Get query from url",
Action: commands.Query, Action: command.Query,
Flags: append(globalFlags(), commands.QueryFlags()...), Flags: append(globalFlags(), command.QueryFlags()...),
}, },
{ {
Name: "fragment", Name: "fragment",
Aliases: []string{"f"}, Aliases: []string{"f"},
Usage: "Get fragment from url", Usage: "Get fragment from url",
Action: commands.Fragment, Action: command.Fragment,
Flags: globalFlags(), Flags: globalFlags(),
}, },
} }

View File

@ -4,8 +4,8 @@ import (
"os" "os"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/thegeeklab/url-parser/internal/command"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/xoxys/url-parser/commands"
) )
// Version of current build // Version of current build
@ -16,7 +16,7 @@ func main() {
app.Name = "url-parser" app.Name = "url-parser"
app.Usage = "Parse URL and shows the part of it." app.Usage = "Parse URL and shows the part of it."
app.Version = Version app.Version = Version
app.Action = commands.Run app.Action = command.Run
app.Flags = globalFlags() app.Flags = globalFlags()
app.Commands = configCommands() app.Commands = configCommands()

9
go.mod
View File

@ -1,10 +1,11 @@
module github.com/xoxys/url-parser module github.com/thegeeklab/url-parser
go 1.13 go 1.13
require ( require (
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d
github.com/sirupsen/logrus v1.4.2 github.com/sirupsen/logrus v1.6.0
github.com/urfave/cli v1.22.2 github.com/urfave/cli/v2 v2.2.0
github.com/urfave/cli/v2 v2.1.1 golang.org/x/sys v0.0.0-20200918174421-af09f7315aff // indirect
) )

18
go.sum
View File

@ -1,27 +1,29 @@
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d h1:cVtBfNW5XTHiKQe7jDaDBSh/EVM4XLPutLAGboIXuM0= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d h1:cVtBfNW5XTHiKQe7jDaDBSh/EVM4XLPutLAGboIXuM0=
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4=
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
github.com/urfave/cli/v2 v2.1.1 h1:Qt8FeAtxE/vfdrLmR3rxR6JRE0RoVmbXu8+6kZtYU4k=
github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200918174421-af09f7315aff h1:1CPUrky56AcgSpxz/KfgzQWzfG09u5YOL8MvPYBlrL8=
golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"net/url" "net/url"

View File

@ -1,4 +1,4 @@
package commands package command
import "testing" import "testing"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"fmt" "fmt"

View File

@ -1,4 +1,4 @@
package commands package command
import ( import (
"flag" "flag"