1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-03 13:11:48 +02:00

69 Commits

Author SHA1 Message Date
Carlos A Becker
a459911f45
fix: many linting issues
refs #3874

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-19 22:17:18 -03:00
Carlos Alexandro Becker
f544c5ce69
test: testctx pkg (#3807)
alternative to #3806 

the idea is that both `context.New` and `context.Context{}` are never
used in tests.

not sure yet how much I like it, so far code does look a bit more
readable though.

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 00:01:11 -03:00
Carlos Alexandro Becker
4f7475eee1
fix: meta archives make the other archives be ignored (#3804) 2023-02-24 14:58:09 -03:00
Carlos Alexandro Becker
a209757ad2
feat: better archives relative paths (#3656)
with this patch, a config like:

```yaml
archives:
  - format: tar.gz
    # this name template makes the OS and Arch compatible with the results of uname.
    name_template: >-
      {{ .ProjectName }}_
      {{- title .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
      {{- if .Arm }}v{{ .Arm }}{{ end }}
    rlcp: true
    files:
      - src: "build/**/*"
        dst: .

nfpms:
  - package_name: foo
    contents:
      - src: "build/**/*"
        dst: usr/share/foo
    formats:
      - apk

```

will eval this:

<img width="1384" alt="CleanShot 2022-12-21 at 22 21 00@2x"
src="https://user-images.githubusercontent.com/245435/209034244-7c31b5f7-cfcd-4825-bb2f-7dd463c5286a.png">

as much as I would like to make this the default, it would be a breaking
change, so we really can't do it.

If `dst` is empty, it'll have the same behavior as before (no rlcp), and
if `strip_parent` is set, it will also still have the same behavior.
Finally, if the format is binary, `rlcp` is ignored too (as it doesn't
make sense).

So, this only changes if:
- your format is not binary; and
- you have files with `src` and `dst` set

Then, goreleaser will warn you to set `rlcp: true`.

## todo

- [x] docs
- [x] more tests probably
- [x] any ideas for a better name for the new config option?

fixes #3655

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-27 17:42:55 -03:00
Carlos Alexandro Becker
937067697b
feat: set file info for binaries inside archives (#3618)
closes #3582

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-14 12:16:03 -03:00
Carlos Alexandro Becker
e54656438b
feat: deprecate replacements (#3589)
The replacements thing was always a bit weird, especially on archives.

We can solve that with templates, so, removing I'm deprecating it.

Also did the same on other places that had it the same feature.

Closes #3588

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-25 15:26:14 -03:00
Giorgio Azzinnaro
0a536f08fd
feat: build of shared/static libraries (#3511)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

This PR improves the handling of shared or static libraries by
GoReleaser. It uses the default behaviour of the Go compiler by
appending the right extension to libraries.

* `.so` and `.a` for Linux shared libraries and static libraries
respectively
* `.dylib` and `.a.` on Darwin
* `.dll` and `.lib` on Windows (pre-existent)

It does not add any configuration option to `.goreleaser.yml`, since it
leverages the existing `buildmode` flag.

Additionally, this PR takes care of adding the generated header file
into the archive.

<!-- Why is this change being made? -->

Personally I would leverage this change to release some software both as
a CLI and as a shared library. I believe others who use CGo or need
interoperability with Go from other languages could benefit from this.

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

This was previously discussed in #3497.

I couldn't quite think of a proper way to add some tests to the header
archiving feature. Any recommendation?
2022-11-11 23:35:51 -03:00
Carlos A Becker
91c6f75b8f
chore: ign linter warning
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-17 00:14:59 -03:00
Carlos Alexandro Becker
36a48eabb7
fix: binary archive when multiple builds (#3385)
closes #3383

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-16 23:47:06 -03:00
Carlos Alexandro Becker
8cb4eb1654
fix: ruleguard and semgrep scans and fixes (#3364)
run semgrep-go ruleguard and semgrep scans

https://github.com/dgryski/semgrep-go

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-11 15:32:23 -03:00
Carlos Alexandro Becker
4da595ed26
feat: strip_parent_binary_folder (#3261)
* feat: strip_parent_binary_folder

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* docs: clarify dir

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: fmt

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-15 22:53:36 -03:00
Carlos Alexandro Becker
ee17c9583d
feat(ci): compile with go 1.19 (#3278)
* feat(ci): compile with go 1.19

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fixing template test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: improve check

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: more test and docs fixes

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fix

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fix

* test: fix

* fix: lint

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: docker templates

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: godoc for RequireTemplateError
2022-08-06 18:44:23 -03:00
Carlos A Becker
05b3fbd305
refactor: make it easier to merge 2022-08-01 15:58:39 -03:00
Carlos Alexandro Becker
72329ab722
refactor: improve handling of extra fields in artifacts (#3191)
* refactor: improve handling of extra fields in artifacts

Backporting from pro: with this we can parse the artifacts list from
json into the context and use them again.

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fix

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-23 23:36:19 -03:00
Carlos Alexandro Becker
fe7e2123bd
feat: replacing the log library (#3139)
* feat: replacing logs

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests et al

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* feat: update termenv/lipgloss

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* wip: output

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: pin dep

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: update

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: tests

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: deps

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: dep

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-06-21 21:11:15 -03:00
Carlos Alexandro Becker
9c426a7b16
refactor: evaluate archive files in another package (#3101)
* refactor: evaluate archive files in another package

would be used in #2911

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: fixes

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-05-11 22:56:25 -03:00
Carlos Alexandro Becker
5d9110ab43
refactor: improve archive pipe (#3100)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-05-11 21:54:28 -03:00
Carlos Alexandro Becker
e38e76cac8
feat: meta archives (#3093)
adds support for creating meta archives

closes #3085

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-05-10 09:17:30 -03:00
Carlos Alexandro Becker
922992ce76
fix: archive ids (#3052)
* fix: archive ids

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: add archive id filter test

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-19 22:49:08 -03:00
Carlos A Becker
53bbc6546f
fix: goamd64 should allow the only range from v1 to v4
It was just allowing v2 and v3 due to some misreading on my side.
This commit fixes it to allow v1, v2, v3 and v4.

refs #3016

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-04-13 21:30:08 -03:00
Carlos Alexandro Becker
b0583c700b
feat: support GOAMD64 (#3016)
* feat: support GOAMD64

* fix: test

* wip

* wip: docker et al

* fix: archive format name

* test: added new test

* feat: nfpm amd4, mips et al

* chore: rm unused file

* fix: brew for multiple goamd64

* fix: krew

* feat: aur

* feat: krew

* docs: brew

* feat: gofis

* feat: scoop

* fix: docker filters

* fix: snapcraft

* fix: improve diff a bit

* fix: snapcraft name template
2022-04-11 22:43:22 -03:00
Carlos A Becker
cdcaf038c8
test: fixes sbom tests
refs #2798

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-30 09:47:52 -03:00
Carlos Alexandro Becker
e8c8a2832f
feat: improve universal binaries on krew/brew/gofish (#2747)
* feat: improve universal binaries on krew/brew/gofish

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: OnlyReplacingUnibins

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: archive

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: do not replace single-arch

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-07 21:53:39 -03:00
Ahmed
c0e5e3b90f
refactor: use os and io instead of ioutil (#2676) 2021-11-21 11:10:08 -03:00
Carlos Alexandro Becker
c99071eb9e
feat(homebrew): support binary releases (#2576)
* feat(homebrew): support binary releases

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: improve code

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: improve code a bit

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: fix archive testts

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-16 23:52:01 -03:00
Carlos Alexandro Becker
f4cef96055
feat(gofish): support binary releases (#2577)
* feat(gofish): support binary releases

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: improve code

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-16 23:20:14 -03:00
Carlos Alexandro Becker
cbb567ca74
fix(archive): add extra fields to the archives (#2578)
* fix(archive): binary format should have the full binary name

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: added an extra field

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-16 23:03:06 -03:00
Carlos Alexandro Becker
df2f00fc8b
refactor: put common extra keys in the artifact package (#2580)
* refactor: put common extra keys in the artifact package

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* refactor: common extra fields have their own funcs

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* refactor: 2 more

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: review

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-16 22:46:11 -03:00
Carlos A Becker
b5aefe6571
fix: improve logging
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-13 22:34:55 -03:00
Carlos Alexandro Becker
3c98e86620
feat: create macOS Universal binaries (#2572)
* feat: artifacts.Remove

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat: fatbinary

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat: run fatbinary on pipeline

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat: make archives work with fat binaries

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat: make brew work with fat binaries

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat: make gofish work with fat binaries

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: archive binary fatbin

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* docs: fat binaries

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: fix on linux

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* feat(ci): enable fat bins on goreleaser itself

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* refactor: rename to universal binaries

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: config

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: rename prop

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-12 14:55:43 -03:00
Carlos Alexandro Becker
1890e67fda
feat: improve brew.install guessing (#2541)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-10-08 21:25:53 -03:00
Carlos Alexandro Becker
7f40922ea2
chore: gofumpt
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-07-23 23:54:13 -03:00
Carlos Alexandro Becker
73641c71ac
feat: file mappings in archives (#2347)
* refactor: archive files

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* feat: better archives

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* feat: better archives

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: test todos

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: go mod tidy et al

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: improve docs and remove typoe 'licence' from defaults

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: fixes

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: error string

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: remove some logs

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: use utc

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-07-21 22:09:02 -03:00
Carlos Alexandro Becker
860b4a8f81
chore: gofumpt & lint (#2190)
Signed-off-by: Carlos Becker <caarlos0@gmail.com>
2021-04-25 14:20:49 -03:00
Carlos Alexandro Becker
66117f3126
fix: several fd leaks (on tests) (#2187) 2021-04-25 11:34:40 -03:00
Carlos Alexandro Becker
873f35a2c2
refactor: use t instead of tt (#2000)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2021-01-07 09:15:32 -03:00
dependabot[bot]
1b0b6be8c5
chore(deps): bump github.com/golangci/golangci-lint from 1.33.0 to 1.34.1 (#1975)
* chore(deps): bump github.com/golangci/golangci-lint

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.33.0 to 1.34.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/golangci/golangci-lint/compare/v1.33.0...v1.34.1)

Signed-off-by: dependabot[bot] <support@github.com>

* fix: lint issues

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: go mod tidy

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-12-29 15:40:21 +00:00
Carlos Alexandro Becker
92f52ac406
refactor(test): use testing.TB Cleanup and Tempdir (#1945)
* refactor: use t.Cleanup instead of defer

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: use t.Cleanup instead of defer

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: use t.Cleanup instead of defer

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: use t.Cleanup instead of defer

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: filepath

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-12-12 13:27:35 -03:00
Carlos Alexandro Becker
4a6693fb72
feat: replace zglob with fileglob (#1889)
* fix: replace zglob with gobwas/glob

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: added missing file

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: fixed wrong assertions

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: use fileglob

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* feat: update fileglob

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: update fileglob

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: test errors

* fix: empty file

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: update fileglob

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-10 11:20:55 -03:00
dependabot[bot]
27aa6871cb
chore(deps): bump github.com/golangci/golangci-lint from 1.31.0 to 1.32.2 (#1882)
* chore(deps): bump github.com/golangci/golangci-lint

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.31.0 to 1.32.2.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/golangci/golangci-lint/compare/v1.31.0...v1.32.2)

Signed-off-by: dependabot[bot] <support@github.com>

* fix: lint issues

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: lint issues

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-11-10 11:15:03 -03:00
Carlos Alexandro Becker
ff2495fbd1
feat: allow to disable archive binary count check (#1856)
closes #1855

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-10-13 17:57:08 -03:00
Carlos Alexandro Becker
229c8f54a5 fix: archive check when project is a library
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-10-11 13:00:42 -03:00
Carlos Alexandro Becker
4471154461
fix: break the release if archive has different binary counts for each platform (#1841)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-10-10 08:46:16 -03:00
Carlos Alexandro Becker
65ffbf1921
refactor: replace pkg/errors.Wrap with fmt.Errorf (#1812)
* refactor: remove pkg/errors

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: remove pkg/errors

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-09-21 17:47:51 +00:00
Carlos Alexandro Becker
ac74de29de
chore(deps): update nfpm (#1813)
* chore(deps): update nfpm

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: lint

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-09-21 10:13:03 -03:00
Carlos Alexandro Becker
69c8a502db
chore(deps): bump github.com/golangci/golangci-lint from 1.23.7 to 1.27.0 (#1563)
* chore(deps): bump github.com/golangci/golangci-lint from 1.23.7 to 1.27.0

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-05-26 00:48:10 -03:00
Carlos Alexandro Becker
fc1ef8a2a2
fix: scoop wrap_in_directory (#1458)
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-04-21 16:11:18 -03:00
Carlos Alexandro Becker
fa608c302e
fix: build.binary and artifact.extra.binary (#1399)
* fix: build.binary and artifact.extra.id

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: scoop usage of extra[binary]

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* fix: unlock
2020-03-28 15:40:16 -03:00
Carlos Alexandro Becker
969fb4b804
feat: templateable archive.files (#1373)
* feat: support variable substitution in archive.files

* Update internal/pipe/archive/archive.go

* feat: templateable archive.files

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* docs: templateable archive.files

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: Robbie Ostrow <ostrowr@users.noreply.github.com>
2020-03-04 00:52:43 -03:00
Carlos Alexandro Becker
d85fff06a2
fix gomips support (#1331)
* wip: fix gomips

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* wip: fix gomips

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: added more

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* test: added more

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2020-02-05 22:08:18 -03:00