├── .github ├── actions │ └── release │ │ └── action.yaml ├── release.yml └── workflows │ ├── release.yaml │ ├── reviewdog.yaml │ ├── tagpr.yaml │ └── test.yaml ├── .gitignore ├── .tagpr ├── CHANGELOG.md ├── CREDITS ├── LICENSE ├── Makefile ├── README.md ├── TODO.md ├── cmd └── godzil │ └── main.go ├── cmd_changelog.go ├── cmd_credits.go ├── cmd_crossbuild.go ├── cmd_new.go ├── cmd_new_test.go ├── cmd_release.go ├── cmd_release_test.go ├── cmd_show_version.go ├── cmdutil.go ├── codecov.yml ├── config.go ├── go.mod ├── go.sum ├── godzil.go ├── testdata └── assets │ ├── _common │ ├── .github │ │ └── workflows │ │ │ ├── reviewdog.yaml │ │ │ ├── tagpr.yaml │ │ │ └── test.yaml │ ├── .tagpr │ ├── LICENSE │ ├── codecov.yml │ └── version.go │ ├── basic │ ├── .gitattributes │ ├── .github │ │ ├── actions │ │ │ └── release │ │ │ │ └── action.yaml │ │ └── workflows │ │ │ ├── release.yaml │ │ │ ├── reviewdog.yaml │ │ │ ├── tagpr.yaml │ │ │ └── test.yaml │ ├── .tagpr │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── cmd │ │ └── {{.Package}} │ │ │ └── main.go │ ├── codecov.yml │ ├── install.sh │ ├── version.go │ └── {{.Package}}.go │ ├── simple │ ├── .github │ │ ├── actions │ │ │ └── release │ │ │ │ └── action.yaml │ │ └── workflows │ │ │ ├── reviewdog.yaml │ │ │ ├── tagpr.yaml │ │ │ └── test.yaml │ ├── .tagpr │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── codecov.yml │ ├── version.go │ └── {{.Package}}.go │ └── web │ ├── .github │ ├── actions │ │ └── release │ │ │ └── action.yaml │ └── workflows │ │ ├── release.yaml │ │ ├── reviewdog.yaml │ │ ├── tagpr.yaml │ │ └── test.yaml │ ├── .tagpr │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── app.json │ ├── app.yaml │ ├── cmd │ └── {{.Package}} │ │ └── main.go │ ├── codecov.yml │ ├── secret.yaml.example │ ├── version.go │ └── {{.Package}}.go └── version.go /.github/actions/release/action.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | description: release godzil 3 | inputs: 4 | tag: 5 | description: tag name to be released 6 | default: '' 7 | token: 8 | description: GitHub token 9 | required: true 10 | runs: 11 | using: composite 12 | steps: 13 | - name: setup go 14 | uses: actions/setup-go@v5 15 | with: 16 | go-version: stable 17 | - name: release 18 | run: | 19 | make crossbuild upload 20 | shell: bash 21 | env: 22 | GITHUB_TOKEN: ${{ inputs.token }} 23 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - tagpr 5 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | on: 3 | push: 4 | tags: 5 | - "v[0-9]+.[0-9]+.[0-9]+" 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: checkout 11 | uses: actions/checkout@v4 12 | - uses: ./.github/actions/release 13 | with: 14 | token: ${{ secrets.GITHUB_TOKEN }} 15 | -------------------------------------------------------------------------------- /.github/workflows/reviewdog.yaml: -------------------------------------------------------------------------------- 1 | name: reviewdog 2 | on: [pull_request] 3 | jobs: 4 | staticcheck: 5 | name: staticcheck 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v4 9 | with: 10 | persist-credentials: false 11 | - uses: reviewdog/action-staticcheck@v1 12 | with: 13 | github_token: ${{ secrets.github_token }} 14 | reporter: github-pr-review 15 | level: warning 16 | misspell: 17 | name: misspell 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Check out code into the Go module directory 21 | uses: actions/checkout@v4 22 | with: 23 | persist-credentials: false 24 | - name: misspell 25 | uses: reviewdog/action-misspell@v1 26 | with: 27 | reporter: github-pr-review 28 | level: warning 29 | locale: "US" 30 | -------------------------------------------------------------------------------- /.github/workflows/tagpr.yaml: -------------------------------------------------------------------------------- 1 | name: tagpr 2 | on: 3 | push: 4 | branches: 5 | - "main" 6 | jobs: 7 | tagpr: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: setup go 11 | uses: actions/setup-go@v5 12 | with: 13 | go-version: stable 14 | - name: checkout 15 | uses: actions/checkout@v4 16 | - name: tagpr 17 | id: tagpr 18 | uses: Songmu/tagpr@v1 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | - uses: ./.github/actions/release 22 | with: 23 | tag: ${{ steps.tagpr.outputs.tag }} 24 | token: ${{ secrets.GITHUB_TOKEN }} 25 | if: "steps.tagpr.outputs.tag != ''" 26 | -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: 3 | pull_request: 4 | branches: 5 | - "**" 6 | push: 7 | branches: 8 | - "main" 9 | jobs: 10 | test: 11 | runs-on: ${{ matrix.os }} 12 | strategy: 13 | fail-fast: false 14 | matrix: 15 | os: 16 | - ubuntu-latest 17 | - macOS-latest 18 | - windows-latest 19 | steps: 20 | - name: Set git to use LF 21 | run: | 22 | git config --global core.autocrlf false 23 | git config --global core.eol lf 24 | if: "matrix.os == 'windows-latest'" 25 | - name: checkout 26 | uses: actions/checkout@v4 27 | - name: setup go 28 | uses: actions/setup-go@v5 29 | with: 30 | go-version: stable 31 | - run: make assets-test 32 | if: "matrix.os == 'ubuntu-latest'" 33 | - name: test 34 | run: go test -race -coverprofile coverage.out -covermode atomic 35 | - name: Upload coverage to Codecov 36 | uses: codecov/codecov-action@v4 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | godzil 3 | -------------------------------------------------------------------------------- /.tagpr: -------------------------------------------------------------------------------- 1 | # config file for the tagpr in git config format 2 | # The tagpr generates the initial configuration, which you can rewrite to suit your environment. 3 | # CONFIGURATIONS: 4 | # tagpr.releaseBranch 5 | # Generally, it is "main." It is the branch for releases. The tagpr tracks this branch, 6 | # creates or updates a pull request as a release candidate, or tags when they are merged. 7 | # 8 | # tagpr.versionFile 9 | # Versioning file containing the semantic version needed to be updated at release. 10 | # It will be synchronized with the "git tag". 11 | # Often this is a meta-information file such as gemspec, setup.cfg, package.json, etc. 12 | # Sometimes the source code file, such as version.go or Bar.pm, is used. 13 | # If you do not want to use versioning files but only git tags, specify the "-" string here. 14 | # You can specify multiple version files by comma separated strings. 15 | # 16 | # tagpr.vPrefix 17 | # Flag whether or not v-prefix is added to semver when git tagging. (e.g. v1.2.3 if true) 18 | # This is only a tagging convention, not how it is described in the version file. 19 | # 20 | # tagpr.changelog (Optional) 21 | # Flag whether or not changelog is added or changed during the release. 22 | # 23 | # tagpr.command (Optional) 24 | # Command to change files just before release. 25 | # 26 | # tagpr.template (Optional) 27 | # Pull request template in go template format 28 | # 29 | # tagpr.release (Optional) 30 | # GitHub Release creation behavior after tagging [true, draft, false] 31 | # If this value is not set, the release is to be created. 32 | # 33 | # tagpr.majorLabels (Optional) 34 | # Label of major update targets. Default is [major] 35 | # 36 | # tagpr.minorLabels (Optional) 37 | # Label of minor update targets. Default is [minor] 38 | # 39 | [tagpr] 40 | vPrefix = true 41 | releaseBranch = main 42 | versionFile = version.go 43 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [v0.20.16](https://github.com/Songmu/godzil/compare/v0.20.15...v0.20.16) - 2024-08-30 4 | - docs: add the installation guide with aqua by @suzuki-shunsuke in https://github.com/Songmu/godzil/pull/97 5 | - Update .github by @Songmu in https://github.com/Songmu/godzil/pull/101 6 | - Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 by @dependabot in https://github.com/Songmu/godzil/pull/99 7 | - Bump golang.org/x/crypto from 0.14.0 to 0.17.0 by @dependabot in https://github.com/Songmu/godzil/pull/98 8 | - go 1.23 and update deps by @Songmu in https://github.com/Songmu/godzil/pull/102 9 | 10 | ## [v0.20.15](https://github.com/Songmu/godzil/compare/v0.20.14...v0.20.15) - 2023-10-08 11 | - update templates by @Songmu in https://github.com/Songmu/godzil/pull/93 12 | - Go 1.21 and update deps by @Songmu in https://github.com/Songmu/godzil/pull/95 13 | 14 | ## [v0.20.14](https://github.com/Songmu/godzil/compare/v0.20.13...v0.20.14) - 2023-06-19 15 | - introduce setup-go@v4 by @Songmu in https://github.com/Songmu/godzil/pull/91 16 | 17 | ## [v0.20.13](https://github.com/Songmu/godzil/compare/v0.20.12...v0.20.13) - 2023-06-16 18 | - Bump golang.org/x/net from 0.0.0-20220812174116-3211cb980234 to 0.7.0 by @dependabot in https://github.com/Songmu/godzil/pull/86 19 | - introduce tagpr by @Songmu in https://github.com/Songmu/godzil/pull/87 20 | - update templates with tagpr by @Songmu in https://github.com/Songmu/godzil/pull/89 21 | - update deps with go 1.20 by @Songmu in https://github.com/Songmu/godzil/pull/90 22 | 23 | ## [v0.20.12](https://github.com/Songmu/godzil/compare/v0.20.11...v0.20.12) (2022-08-18) 24 | 25 | * update deps [#85](https://github.com/Songmu/godzil/pull/85) ([Songmu](https://github.com/Songmu)) 26 | * update profiles [#84](https://github.com/Songmu/godzil/pull/84) ([Songmu](https://github.com/Songmu)) 27 | 28 | ## [v0.20.11](https://github.com/Songmu/godzil/compare/v0.20.10...v0.20.11) (2022-06-25) 29 | 30 | * update deps [#83](https://github.com/Songmu/godzil/pull/83) ([Songmu](https://github.com/Songmu)) 31 | * Push releasing branch and next tag atomically [#82](https://github.com/Songmu/godzil/pull/82) ([itchyny](https://github.com/itchyny)) 32 | 33 | ## [v0.20.10](https://github.com/Songmu/godzil/compare/v0.20.9...v0.20.10) (2022-05-22) 34 | 35 | * with fetch-depth:0 in release.yaml [#81](https://github.com/Songmu/godzil/pull/81) ([Songmu](https://github.com/Songmu)) 36 | 37 | ## [v0.20.9](https://github.com/Songmu/godzil/compare/v0.20.8...v0.20.9) (2022-05-22) 38 | 39 | * group common parts of profile into testdata/assets/_common [#80](https://github.com/Songmu/godzil/pull/80) ([Songmu](https://github.com/Songmu)) 40 | * update deps [#79](https://github.com/Songmu/godzil/pull/79) ([Songmu](https://github.com/Songmu)) 41 | * use go:embed all: feature for dotfiles [#78](https://github.com/Songmu/godzil/pull/78) ([Songmu](https://github.com/Songmu)) 42 | 43 | ## [v0.20.8](https://github.com/Songmu/godzil/compare/v0.20.7...v0.20.8) (2022-05-22) 44 | 45 | * remove unintentionally remained coveralls settings [#77](https://github.com/Songmu/godzil/pull/77) ([Songmu](https://github.com/Songmu)) 46 | 47 | ## [v0.20.7](https://github.com/Songmu/godzil/compare/v0.20.6...v0.20.7) (2022-05-06) 48 | 49 | * build with go 1.18 and update metafiles [#76](https://github.com/Songmu/godzil/pull/76) ([Songmu](https://github.com/Songmu)) 50 | 51 | ## [v0.20.6](https://github.com/Songmu/godzil/compare/v0.20.5...v0.20.6) (2022-01-07) 52 | 53 | * fix license shields [#75](https://github.com/Songmu/godzil/pull/75) ([Songmu](https://github.com/Songmu)) 54 | 55 | ## [v0.20.5](https://github.com/Songmu/godzil/compare/v0.20.4...v0.20.5) (2021-12-26) 56 | 57 | * update deps and CREDITS [#74](https://github.com/Songmu/godzil/pull/74) ([Songmu](https://github.com/Songmu)) 58 | 59 | ## [v0.20.4](https://github.com/Songmu/godzil/compare/v0.20.3...v0.20.4) (2021-12-26) 60 | 61 | * update deps [#73](https://github.com/Songmu/godzil/pull/73) ([Songmu](https://github.com/Songmu)) 62 | * adjust install.sh [#72](https://github.com/Songmu/godzil/pull/72) ([Songmu](https://github.com/Songmu)) 63 | 64 | ## [v0.20.3](https://github.com/Songmu/godzil/compare/v0.20.2...v0.20.3) (2021-12-26) 65 | 66 | * go 1.17 and update deps [#71](https://github.com/Songmu/godzil/pull/71) ([Songmu](https://github.com/Songmu)) 67 | 68 | ## [v0.20.2](https://github.com/Songmu/godzil/compare/v0.20.1...v0.20.2) (2021-03-14) 69 | 70 | * include SHA256SUMS in releases on basic profile [#70](https://github.com/Songmu/godzil/pull/70) ([Songmu](https://github.com/Songmu)) 71 | * [bugfix] care dotfiles [#69](https://github.com/Songmu/godzil/pull/69) ([Songmu](https://github.com/Songmu)) 72 | 73 | ## [v0.20.1](https://github.com/Songmu/godzil/compare/v0.20.0...v0.20.1) (2021-03-13) 74 | 75 | * enhance testing for godzil new [#67](https://github.com/Songmu/godzil/pull/67) ([Songmu](https://github.com/Songmu)) 76 | * describe deploy setting in README.md of web profile [#66](https://github.com/Songmu/godzil/pull/66) ([Songmu](https://github.com/Songmu)) 77 | * add codecov.yml to templates [#65](https://github.com/Songmu/godzil/pull/65) ([Songmu](https://github.com/Songmu)) 78 | 79 | ## [v0.20.0](https://github.com/Songmu/godzil/compare/v0.11.0...v0.20.0) (2021-03-13) 80 | 81 | * udpate deps [#64](https://github.com/Songmu/godzil/pull/64) ([Songmu](https://github.com/Songmu)) 82 | * adjust templates [#63](https://github.com/Songmu/godzil/pull/63) ([Songmu](https://github.com/Songmu)) 83 | * introduce codecov [#62](https://github.com/Songmu/godzil/pull/62) ([Songmu](https://github.com/Songmu)) 84 | * drop rakyll/statik dependency [#61](https://github.com/Songmu/godzil/pull/61) ([Songmu](https://github.com/Songmu)) 85 | 86 | ## [v0.11.0](https://github.com/Songmu/godzil/compare/v0.10.0...v0.11.0) (2020-11-01) 87 | 88 | * detect release branch on godzil new [#60](https://github.com/Songmu/godzil/pull/60) ([Songmu](https://github.com/Songmu)) 89 | * detect default branch from remote and stop using hard-coded 'master' [#59](https://github.com/Songmu/godzil/pull/59) ([Songmu](https://github.com/Songmu)) 90 | 91 | ## [v0.10.0](https://github.com/Songmu/godzil/compare/v0.9.0...v0.10.0) (2020-07-28) 92 | 93 | * add web profile [#58](https://github.com/Songmu/godzil/pull/58) ([Songmu](https://github.com/Songmu)) 94 | 95 | ## [v0.9.0](https://github.com/Songmu/godzil/compare/v0.8.5...v0.9.0) (2020-07-24) 96 | 97 | * switch to goccy/go-yaml from go-yaml/yaml [#57](https://github.com/Songmu/godzil/pull/57) ([Songmu](https://github.com/Songmu)) 98 | * switch to x/mod/semver from Masterminds/semver [#56](https://github.com/Songmu/godzil/pull/56) ([Songmu](https://github.com/Songmu)) 99 | * Update GitHub Actions workflows [#55](https://github.com/Songmu/godzil/pull/55) ([Songmu](https://github.com/Songmu)) 100 | 101 | ## [v0.8.5](https://github.com/Songmu/godzil/compare/v0.8.4...v0.8.5) (2020-01-24) 102 | 103 | * update deps [#54](https://github.com/Songmu/godzil/pull/54) ([Songmu](https://github.com/Songmu)) 104 | 105 | ## [v0.8.4](https://github.com/Songmu/godzil/compare/v0.8.3...v0.8.4) (2020-01-17) 106 | 107 | * update deps [#53](https://github.com/Songmu/godzil/pull/53) ([Songmu](https://github.com/Songmu)) 108 | 109 | ## [v0.8.3](https://github.com/Songmu/godzil/compare/v0.8.2...v0.8.3) (2020-01-13) 110 | 111 | * update assets [#52](https://github.com/Songmu/godzil/pull/52) ([Songmu](https://github.com/Songmu)) 112 | 113 | ## [v0.8.2](https://github.com/Songmu/godzil/compare/v0.8.1...v0.8.2) (2020-01-12) 114 | 115 | * check if the target version is tagged before starting releng [#50](https://github.com/Songmu/godzil/pull/50) ([Songmu](https://github.com/Songmu)) 116 | * push tags only the new version [#51](https://github.com/Songmu/godzil/pull/51) ([Songmu](https://github.com/Songmu)) 117 | 118 | ## [v0.8.1](https://github.com/Songmu/godzil/compare/v0.8.0...v0.8.1) (2019-12-29) 119 | 120 | * fix assets .github/workflows/test.yaml [#49](https://github.com/Songmu/godzil/pull/49) ([Songmu](https://github.com/Songmu)) 121 | * migrate to Songmu/gitconfig from tcnksm/go-gitconfig [#48](https://github.com/Songmu/godzil/pull/48) ([Songmu](https://github.com/Songmu)) 122 | * allow empty git repository on new subcommand [#47](https://github.com/Songmu/godzil/pull/47) ([Songmu](https://github.com/Songmu)) 123 | * define cmd.dir string [#46](https://github.com/Songmu/godzil/pull/46) ([Songmu](https://github.com/Songmu)) 124 | 125 | ## [v0.8.0](https://github.com/Songmu/godzil/compare/v0.7.0...v0.8.0) (2019-11-19) 126 | 127 | * add credits subcommand [#45](https://github.com/Songmu/godzil/pull/45) ([Songmu](https://github.com/Songmu)) 128 | * enable Go Modules when get dev tools [#44](https://github.com/Songmu/godzil/pull/44) ([Songmu](https://github.com/Songmu)) 129 | * add "changelog" and "crossbuild" subcommand and drop "ghch" subcommand [#43](https://github.com/Songmu/godzil/pull/43) ([Songmu](https://github.com/Songmu)) 130 | 131 | ## [v0.7.0](https://github.com/Songmu/godzil/compare/v0.6.7...v0.7.0) (2019-11-06) 132 | 133 | * add ghch subcommand [#42](https://github.com/Songmu/godzil/pull/42) ([Songmu](https://github.com/Songmu)) 134 | 135 | ## [v0.6.7](https://github.com/Songmu/godzil/compare/v0.6.6...v0.6.7) (2019-11-05) 136 | 137 | * adjust assets again [#41](https://github.com/Songmu/godzil/pull/41) ([Songmu](https://github.com/Songmu)) 138 | 139 | ## [v0.6.6](https://github.com/Songmu/godzil/compare/v0.6.5...v0.6.6) (2019-10-27) 140 | 141 | * update workflow files [#40](https://github.com/Songmu/godzil/pull/40) ([Songmu](https://github.com/Songmu)) 142 | 143 | ## [v0.6.5](https://github.com/Songmu/godzil/compare/v0.6.4...v0.6.5) (2019-10-27) 144 | 145 | * bugfix around bumping [#39](https://github.com/Songmu/godzil/pull/39) ([Songmu](https://github.com/Songmu)) 146 | 147 | ## [v0.6.4](https://github.com/Songmu/godzil/compare/v0.6.3...v0.6.4) (2019-10-27) 148 | 149 | * update assets [#38](https://github.com/Songmu/godzil/pull/38) ([Songmu](https://github.com/Songmu)) 150 | 151 | ## [v0.6.3](https://github.com/Songmu/godzil/compare/v0.6.2...v0.6.3) (2019-10-27) 152 | 153 | * fix broken assets [#37](https://github.com/Songmu/godzil/pull/37) ([Songmu](https://github.com/Songmu)) 154 | 155 | ## [v0.6.2](https://github.com/Songmu/godzil/compare/v0.6.1...v0.6.2) (2019-10-27) 156 | 157 | * go mod tidy before gocredits [#36](https://github.com/Songmu/godzil/pull/36) ([Songmu](https://github.com/Songmu)) 158 | 159 | ## [v0.6.1](https://github.com/Songmu/godzil/compare/v0.6.0...v0.6.1) (2019-10-27) 160 | 161 | * adjust assets [#35](https://github.com/Songmu/godzil/pull/35) ([Songmu](https://github.com/Songmu)) 162 | 163 | ## [v0.6.0](https://github.com/Songmu/godzil/compare/v0.5.0...v0.6.0) (2019-10-26) 164 | 165 | * contextize default assets [#34](https://github.com/Songmu/godzil/pull/34) ([Songmu](https://github.com/Songmu)) 166 | * use GitHub Actions for CI [#33](https://github.com/Songmu/godzil/pull/33) ([Songmu](https://github.com/Songmu)) 167 | 168 | ## [v0.5.0](https://github.com/Songmu/godzil/compare/v0.4.0...v0.5.0) (2019-09-22) 169 | 170 | * Go1.13 [#31](https://github.com/Songmu/godzil/pull/31) ([Songmu](https://github.com/Songmu)) 171 | * update assets [#30](https://github.com/Songmu/godzil/pull/30) ([Songmu](https://github.com/Songmu)) 172 | 173 | ## [v0.4.0](https://github.com/Songmu/godzil/compare/v0.3.1...v0.4.0) (2019-04-30) 174 | 175 | * update deps [#29](https://github.com/Songmu/godzil/pull/29) ([Songmu](https://github.com/Songmu)) 176 | 177 | ## [v0.3.1](https://github.com/Songmu/godzil/compare/v0.3.0...v0.3.1) (2019-04-25) 178 | 179 | * add profile simple [#28](https://github.com/Songmu/godzil/pull/28) ([Songmu](https://github.com/Songmu)) 180 | 181 | ## [v0.3.0](https://github.com/Songmu/godzil/compare/v0.2.4...v0.3.0) (2019-04-25) 182 | 183 | * load custom profile template from .config/godzil/profiles [#27](https://github.com/Songmu/godzil/pull/27) ([Songmu](https://github.com/Songmu)) 184 | * creating new project under project root if exists [#26](https://github.com/Songmu/godzil/pull/26) ([Songmu](https://github.com/Songmu)) 185 | * .config/godzil/config.yaml [#25](https://github.com/Songmu/godzil/pull/25) ([Songmu](https://github.com/Songmu)) 186 | 187 | ## [v0.2.4](https://github.com/Songmu/godzil/compare/v0.2.3...v0.2.4) (2019-04-23) 188 | 189 | * update assets [#24](https://github.com/Songmu/godzil/pull/24) ([Songmu](https://github.com/Songmu)) 190 | 191 | ## [v0.2.3](https://github.com/Songmu/godzil/compare/v0.2.2...v0.2.3) (2019-04-10) 192 | 193 | * introduce gocredits to bundle CREDITS to packages [#23](https://github.com/Songmu/godzil/pull/23) ([Songmu](https://github.com/Songmu)) 194 | * dist:xenial in travis [#22](https://github.com/Songmu/godzil/pull/22) ([Songmu](https://github.com/Songmu)) 195 | 196 | ## [v0.2.2](https://github.com/Songmu/godzil/compare/v0.2.1...v0.2.2) (2019-04-09) 197 | 198 | * update assets [#21](https://github.com/Songmu/godzil/pull/21) ([Songmu](https://github.com/Songmu)) 199 | 200 | ## [v0.2.1](https://github.com/Songmu/godzil/compare/v0.2.0...v0.2.1) (2019-03-24) 201 | 202 | * update deps [#20](https://github.com/Songmu/godzil/pull/20) ([Songmu](https://github.com/Songmu)) 203 | * introduce statikp for include dotfiles into asset [#19](https://github.com/Songmu/godzil/pull/19) ([Songmu](https://github.com/Songmu)) 204 | 205 | ## [v0.2.0](https://github.com/Songmu/godzil/compare/v0.1.3...v0.2.0) (2019-03-21) 206 | 207 | * introduce Songmu/gokoku and rakyll/statik [#18](https://github.com/Songmu/godzil/pull/18) ([Songmu](https://github.com/Songmu)) 208 | 209 | ## [v0.1.3](https://github.com/Songmu/godzil/compare/v0.1.2...v0.1.3) (2019-02-27) 210 | 211 | * update deps [#17](https://github.com/Songmu/godzil/pull/17) ([Songmu](https://github.com/Songmu)) 212 | * specify template profile in new [#16](https://github.com/Songmu/godzil/pull/16) ([Songmu](https://github.com/Songmu)) 213 | 214 | ## [v0.1.2](https://github.com/Songmu/godzil/compare/v0.1.1...v0.1.2) (2019-02-26) 215 | 216 | * introduce each .PHONY style in Makefile [#15](https://github.com/Songmu/godzil/pull/15) ([Songmu](https://github.com/Songmu)) 217 | 218 | ## [v0.1.1](https://github.com/Songmu/godzil/compare/v0.1.0...v0.1.1) (2019-02-23) 219 | 220 | * [bugfix] use next tag correctly when generating changelog [#14](https://github.com/Songmu/godzil/pull/14) ([Songmu](https://github.com/Songmu)) 221 | 222 | ## [v0.1.0](https://github.com/Songmu/godzil/compare/v0.0.3...v0.1.0) (2019-02-18) 223 | 224 | * implement new subcommand [#13](https://github.com/Songmu/godzil/pull/13) ([Songmu](https://github.com/Songmu)) 225 | * add -version flag to print version [#12](https://github.com/Songmu/godzil/pull/12) ([Songmu](https://github.com/Songmu)) 226 | 227 | ## [v0.0.3](https://github.com/Songmu/godzil/compare/v0.0.2...v0.0.3) (2019-02-17) 228 | 229 | * enhance commit log when releasing [#11](https://github.com/Songmu/godzil/pull/11) ([Songmu](https://github.com/Songmu)) 230 | 231 | ## [v0.0.2](https://github.com/Songmu/godzil/compare/v0.0.1...v0.0.2) (2019-02-17) 232 | 233 | * introduce go.mod [#10](https://github.com/Songmu/godzil/pull/10) ([Songmu](https://github.com/Songmu)) 234 | * add show-version subcommand [#9](https://github.com/Songmu/godzil/pull/9) ([Songmu](https://github.com/Songmu)) 235 | * add new.go [#8](https://github.com/Songmu/godzil/pull/8) ([Songmu](https://github.com/Songmu)) 236 | * godzil! [#7](https://github.com/Songmu/godzil/pull/7) ([Songmu](https://github.com/Songmu)) 237 | * check the next version is greater than current version or not [#6](https://github.com/Songmu/godzil/pull/6) ([Songmu](https://github.com/Songmu)) 238 | * Detect remote URL and check it on releasing [#5](https://github.com/Songmu/godzil/pull/5) ([Songmu](https://github.com/Songmu)) 239 | * s/gauthor/godzilla/ [#4](https://github.com/Songmu/godzil/pull/4) ([Songmu](https://github.com/Songmu)) 240 | * define release subcommand [#3](https://github.com/Songmu/godzil/pull/3) ([Songmu](https://github.com/Songmu)) 241 | * show changes when releasing [#2](https://github.com/Songmu/godzil/pull/2) ([Songmu](https://github.com/Songmu)) 242 | * detect version declaration files [#1](https://github.com/Songmu/godzil/pull/1) ([Songmu](https://github.com/Songmu)) 243 | 244 | ## [v0.0.1](https://github.com/Songmu/gauthor/compare/0a300d82cbed...v0.0.1) (2019-02-15) 245 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | Go (the standard library) 2 | https://golang.org/ 3 | ---------------------------------------------------------------- 4 | Copyright (c) 2009 The Go Authors. All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are 8 | met: 9 | 10 | * Redistributions of source code must retain the above copyright 11 | notice, this list of conditions and the following disclaimer. 12 | * Redistributions in binary form must reproduce the above 13 | copyright notice, this list of conditions and the following disclaimer 14 | in the documentation and/or other materials provided with the 15 | distribution. 16 | * Neither the name of Google Inc. nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | ================================================================ 33 | 34 | github.com/Masterminds/semver/v3 35 | https://github.com/Masterminds/semver/v3 36 | ---------------------------------------------------------------- 37 | Copyright (C) 2014-2019, Matt Butcher and Matt Farina 38 | 39 | Permission is hereby granted, free of charge, to any person obtaining a copy 40 | of this software and associated documentation files (the "Software"), to deal 41 | in the Software without restriction, including without limitation the rights 42 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 43 | copies of the Software, and to permit persons to whom the Software is 44 | furnished to do so, subject to the following conditions: 45 | 46 | The above copyright notice and this permission notice shall be included in 47 | all copies or substantial portions of the Software. 48 | 49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 50 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 51 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 52 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 53 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 54 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 55 | THE SOFTWARE. 56 | 57 | ================================================================ 58 | 59 | github.com/Songmu/ghch 60 | https://github.com/Songmu/ghch 61 | ---------------------------------------------------------------- 62 | Copyright (c) 2015 Songmu 63 | 64 | MIT License 65 | 66 | Permission is hereby granted, free of charge, to any person obtaining 67 | a copy of this software and associated documentation files (the 68 | "Software"), to deal in the Software without restriction, including 69 | without limitation the rights to use, copy, modify, merge, publish, 70 | distribute, sublicense, and/or sell copies of the Software, and to 71 | permit persons to whom the Software is furnished to do so, subject to 72 | the following conditions: 73 | 74 | The above copyright notice and this permission notice shall be 75 | included in all copies or substantial portions of the Software. 76 | 77 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 78 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 79 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 80 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 81 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 82 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 83 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 84 | 85 | ================================================================ 86 | 87 | github.com/Songmu/gitconfig 88 | https://github.com/Songmu/gitconfig 89 | ---------------------------------------------------------------- 90 | Copyright (c) 2019 Songmu 91 | 92 | MIT License 93 | 94 | Permission is hereby granted, free of charge, to any person obtaining 95 | a copy of this software and associated documentation files (the 96 | "Software"), to deal in the Software without restriction, including 97 | without limitation the rights to use, copy, modify, merge, publish, 98 | distribute, sublicense, and/or sell copies of the Software, and to 99 | permit persons to whom the Software is furnished to do so, subject to 100 | the following conditions: 101 | 102 | The above copyright notice and this permission notice shall be 103 | included in all copies or substantial portions of the Software. 104 | 105 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 106 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 107 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 108 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 109 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 110 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 111 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 112 | 113 | ================================================================ 114 | 115 | github.com/Songmu/gitmock 116 | https://github.com/Songmu/gitmock 117 | ---------------------------------------------------------------- 118 | Copyright (c) 2015 Songmu 119 | 120 | MIT License 121 | 122 | Permission is hereby granted, free of charge, to any person obtaining 123 | a copy of this software and associated documentation files (the 124 | "Software"), to deal in the Software without restriction, including 125 | without limitation the rights to use, copy, modify, merge, publish, 126 | distribute, sublicense, and/or sell copies of the Software, and to 127 | permit persons to whom the Software is furnished to do so, subject to 128 | the following conditions: 129 | 130 | The above copyright notice and this permission notice shall be 131 | included in all copies or substantial portions of the Software. 132 | 133 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 134 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 135 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 136 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 137 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 138 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 139 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 140 | 141 | ================================================================ 142 | 143 | github.com/Songmu/gitsemvers 144 | https://github.com/Songmu/gitsemvers 145 | ---------------------------------------------------------------- 146 | Copyright (c) 2015 Songmu 147 | 148 | MIT License 149 | 150 | Permission is hereby granted, free of charge, to any person obtaining 151 | a copy of this software and associated documentation files (the 152 | "Software"), to deal in the Software without restriction, including 153 | without limitation the rights to use, copy, modify, merge, publish, 154 | distribute, sublicense, and/or sell copies of the Software, and to 155 | permit persons to whom the Software is furnished to do so, subject to 156 | the following conditions: 157 | 158 | The above copyright notice and this permission notice shall be 159 | included in all copies or substantial portions of the Software. 160 | 161 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 162 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 163 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 164 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 165 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 166 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 167 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 168 | 169 | ================================================================ 170 | 171 | github.com/Songmu/gocredits 172 | https://github.com/Songmu/gocredits 173 | ---------------------------------------------------------------- 174 | Copyright (c) 2019 Songmu 175 | 176 | MIT License 177 | 178 | Permission is hereby granted, free of charge, to any person obtaining 179 | a copy of this software and associated documentation files (the 180 | "Software"), to deal in the Software without restriction, including 181 | without limitation the rights to use, copy, modify, merge, publish, 182 | distribute, sublicense, and/or sell copies of the Software, and to 183 | permit persons to whom the Software is furnished to do so, subject to 184 | the following conditions: 185 | 186 | The above copyright notice and this permission notice shall be 187 | included in all copies or substantial portions of the Software. 188 | 189 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 190 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 191 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 192 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 193 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 194 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 195 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 196 | 197 | ================================================================ 198 | 199 | github.com/Songmu/gokoku 200 | https://github.com/Songmu/gokoku 201 | ---------------------------------------------------------------- 202 | Copyright (c) 2019 Songmu 203 | 204 | MIT License 205 | 206 | Permission is hereby granted, free of charge, to any person obtaining 207 | a copy of this software and associated documentation files (the 208 | "Software"), to deal in the Software without restriction, including 209 | without limitation the rights to use, copy, modify, merge, publish, 210 | distribute, sublicense, and/or sell copies of the Software, and to 211 | permit persons to whom the Software is furnished to do so, subject to 212 | the following conditions: 213 | 214 | The above copyright notice and this permission notice shall be 215 | included in all copies or substantial portions of the Software. 216 | 217 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 218 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 219 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 220 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 221 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 222 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 223 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 224 | 225 | ================================================================ 226 | 227 | github.com/Songmu/goxz 228 | https://github.com/Songmu/goxz 229 | ---------------------------------------------------------------- 230 | Copyright (c) 2017 Songmu 231 | 232 | MIT License 233 | 234 | Permission is hereby granted, free of charge, to any person obtaining 235 | a copy of this software and associated documentation files (the 236 | "Software"), to deal in the Software without restriction, including 237 | without limitation the rights to use, copy, modify, merge, publish, 238 | distribute, sublicense, and/or sell copies of the Software, and to 239 | permit persons to whom the Software is furnished to do so, subject to 240 | the following conditions: 241 | 242 | The above copyright notice and this permission notice shall be 243 | included in all copies or substantial portions of the Software. 244 | 245 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 246 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 247 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 248 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 249 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 250 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 251 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 252 | 253 | ================================================================ 254 | 255 | github.com/Songmu/prompter 256 | https://github.com/Songmu/prompter 257 | ---------------------------------------------------------------- 258 | Copyright (c) 2015 Songmu 259 | 260 | MIT License 261 | 262 | Permission is hereby granted, free of charge, to any person obtaining 263 | a copy of this software and associated documentation files (the 264 | "Software"), to deal in the Software without restriction, including 265 | without limitation the rights to use, copy, modify, merge, publish, 266 | distribute, sublicense, and/or sell copies of the Software, and to 267 | permit persons to whom the Software is furnished to do so, subject to 268 | the following conditions: 269 | 270 | The above copyright notice and this permission notice shall be 271 | included in all copies or substantial portions of the Software. 272 | 273 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 274 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 275 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 276 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 277 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 278 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 279 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 280 | 281 | ================================================================ 282 | 283 | github.com/andybalholm/brotli 284 | https://github.com/andybalholm/brotli 285 | ---------------------------------------------------------------- 286 | Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. 287 | 288 | Permission is hereby granted, free of charge, to any person obtaining a copy 289 | of this software and associated documentation files (the "Software"), to deal 290 | in the Software without restriction, including without limitation the rights 291 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 292 | copies of the Software, and to permit persons to whom the Software is 293 | furnished to do so, subject to the following conditions: 294 | 295 | The above copyright notice and this permission notice shall be included in 296 | all copies or substantial portions of the Software. 297 | 298 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 299 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 300 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 301 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 302 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 303 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 304 | THE SOFTWARE. 305 | 306 | ================================================================ 307 | 308 | github.com/chzyer/logex 309 | https://github.com/chzyer/logex 310 | ---------------------------------------------------------------- 311 | The MIT License (MIT) 312 | 313 | Copyright (c) 2015 Chzyer 314 | 315 | Permission is hereby granted, free of charge, to any person obtaining a copy 316 | of this software and associated documentation files (the "Software"), to deal 317 | in the Software without restriction, including without limitation the rights 318 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 319 | copies of the Software, and to permit persons to whom the Software is 320 | furnished to do so, subject to the following conditions: 321 | 322 | The above copyright notice and this permission notice shall be included in all 323 | copies or substantial portions of the Software. 324 | 325 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 326 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 327 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 328 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 329 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 330 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 331 | SOFTWARE. 332 | 333 | 334 | ================================================================ 335 | 336 | github.com/chzyer/readline 337 | https://github.com/chzyer/readline 338 | ---------------------------------------------------------------- 339 | The MIT License (MIT) 340 | 341 | Copyright (c) 2015 Chzyer 342 | 343 | Permission is hereby granted, free of charge, to any person obtaining a copy 344 | of this software and associated documentation files (the "Software"), to deal 345 | in the Software without restriction, including without limitation the rights 346 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 347 | copies of the Software, and to permit persons to whom the Software is 348 | furnished to do so, subject to the following conditions: 349 | 350 | The above copyright notice and this permission notice shall be included in all 351 | copies or substantial portions of the Software. 352 | 353 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 354 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 355 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 356 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 357 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 358 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 359 | SOFTWARE. 360 | 361 | 362 | ================================================================ 363 | 364 | github.com/chzyer/test 365 | https://github.com/chzyer/test 366 | ---------------------------------------------------------------- 367 | The MIT License (MIT) 368 | 369 | Copyright (c) 2016 chzyer 370 | 371 | Permission is hereby granted, free of charge, to any person obtaining a copy 372 | of this software and associated documentation files (the "Software"), to deal 373 | in the Software without restriction, including without limitation the rights 374 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 375 | copies of the Software, and to permit persons to whom the Software is 376 | furnished to do so, subject to the following conditions: 377 | 378 | The above copyright notice and this permission notice shall be included in all 379 | copies or substantial portions of the Software. 380 | 381 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 382 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 383 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 384 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 385 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 386 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 387 | SOFTWARE. 388 | 389 | ================================================================ 390 | 391 | github.com/cli/go-gh 392 | https://github.com/cli/go-gh 393 | ---------------------------------------------------------------- 394 | MIT License 395 | 396 | Copyright (c) 2021 GitHub Inc. 397 | 398 | Permission is hereby granted, free of charge, to any person obtaining a copy 399 | of this software and associated documentation files (the "Software"), to deal 400 | in the Software without restriction, including without limitation the rights 401 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 402 | copies of the Software, and to permit persons to whom the Software is 403 | furnished to do so, subject to the following conditions: 404 | 405 | The above copyright notice and this permission notice shall be included in all 406 | copies or substantial portions of the Software. 407 | 408 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 409 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 410 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 411 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 412 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 413 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 414 | SOFTWARE. 415 | 416 | ================================================================ 417 | 418 | github.com/cli/safeexec 419 | https://github.com/cli/safeexec 420 | ---------------------------------------------------------------- 421 | BSD 2-Clause License 422 | 423 | Copyright (c) 2020, GitHub Inc. 424 | All rights reserved. 425 | 426 | Redistribution and use in source and binary forms, with or without 427 | modification, are permitted provided that the following conditions are met: 428 | 429 | 1. Redistributions of source code must retain the above copyright notice, this 430 | list of conditions and the following disclaimer. 431 | 432 | 2. Redistributions in binary form must reproduce the above copyright notice, 433 | this list of conditions and the following disclaimer in the documentation 434 | and/or other materials provided with the distribution. 435 | 436 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 437 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 438 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 439 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 440 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 441 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 442 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 443 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 444 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 445 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 446 | 447 | ================================================================ 448 | 449 | github.com/davecgh/go-spew 450 | https://github.com/davecgh/go-spew 451 | ---------------------------------------------------------------- 452 | ISC License 453 | 454 | Copyright (c) 2012-2016 Dave Collins 455 | 456 | Permission to use, copy, modify, and/or distribute this software for any 457 | purpose with or without fee is hereby granted, provided that the above 458 | copyright notice and this permission notice appear in all copies. 459 | 460 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 461 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 462 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 463 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 464 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 465 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 466 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 467 | 468 | ================================================================ 469 | 470 | github.com/dsnet/compress 471 | https://github.com/dsnet/compress 472 | ---------------------------------------------------------------- 473 | Copyright © 2015, Joe Tsai and The Go Authors. All rights reserved. 474 | 475 | Redistribution and use in source and binary forms, with or without 476 | modification, are permitted provided that the following conditions are met: 477 | 478 | * Redistributions of source code must retain the above copyright notice, this 479 | list of conditions and the following disclaimer. 480 | * Redistributions in binary form must reproduce the above copyright notice, 481 | this list of conditions and the following disclaimer in the documentation and/or 482 | other materials provided with the distribution. 483 | * Neither the copyright holder nor the names of its contributors may be used to 484 | endorse or promote products derived from this software without specific prior 485 | written permission. 486 | 487 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 488 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 489 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 490 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 491 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 492 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 493 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 494 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 495 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 496 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 497 | 498 | ================================================================ 499 | 500 | github.com/fatih/color 501 | https://github.com/fatih/color 502 | ---------------------------------------------------------------- 503 | The MIT License (MIT) 504 | 505 | Copyright (c) 2013 Fatih Arslan 506 | 507 | Permission is hereby granted, free of charge, to any person obtaining a copy of 508 | this software and associated documentation files (the "Software"), to deal in 509 | the Software without restriction, including without limitation the rights to 510 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 511 | the Software, and to permit persons to whom the Software is furnished to do so, 512 | subject to the following conditions: 513 | 514 | The above copyright notice and this permission notice shall be included in all 515 | copies or substantial portions of the Software. 516 | 517 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 518 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 519 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 520 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 521 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 522 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 523 | 524 | ================================================================ 525 | 526 | github.com/go-playground/locales 527 | https://github.com/go-playground/locales 528 | ---------------------------------------------------------------- 529 | The MIT License (MIT) 530 | 531 | Copyright (c) 2016 Go Playground 532 | 533 | Permission is hereby granted, free of charge, to any person obtaining a copy 534 | of this software and associated documentation files (the "Software"), to deal 535 | in the Software without restriction, including without limitation the rights 536 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 537 | copies of the Software, and to permit persons to whom the Software is 538 | furnished to do so, subject to the following conditions: 539 | 540 | The above copyright notice and this permission notice shall be included in all 541 | copies or substantial portions of the Software. 542 | 543 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 544 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 545 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 546 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 547 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 548 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 549 | SOFTWARE. 550 | ================================================================ 551 | 552 | github.com/go-playground/universal-translator 553 | https://github.com/go-playground/universal-translator 554 | ---------------------------------------------------------------- 555 | The MIT License (MIT) 556 | 557 | Copyright (c) 2016 Go Playground 558 | 559 | Permission is hereby granted, free of charge, to any person obtaining a copy 560 | of this software and associated documentation files (the "Software"), to deal 561 | in the Software without restriction, including without limitation the rights 562 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 563 | copies of the Software, and to permit persons to whom the Software is 564 | furnished to do so, subject to the following conditions: 565 | 566 | The above copyright notice and this permission notice shall be included in all 567 | copies or substantial portions of the Software. 568 | 569 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 570 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 571 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 572 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 573 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 574 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 575 | SOFTWARE. 576 | 577 | ================================================================ 578 | 579 | github.com/go-playground/validator/v10 580 | https://github.com/go-playground/validator/v10 581 | ---------------------------------------------------------------- 582 | The MIT License (MIT) 583 | 584 | Copyright (c) 2015 Dean Karn 585 | 586 | Permission is hereby granted, free of charge, to any person obtaining a copy 587 | of this software and associated documentation files (the "Software"), to deal 588 | in the Software without restriction, including without limitation the rights 589 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 590 | copies of the Software, and to permit persons to whom the Software is 591 | furnished to do so, subject to the following conditions: 592 | 593 | The above copyright notice and this permission notice shall be included in all 594 | copies or substantial portions of the Software. 595 | 596 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 597 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 598 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 599 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 600 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 601 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 602 | SOFTWARE. 603 | 604 | 605 | ================================================================ 606 | 607 | github.com/goccy/go-yaml 608 | https://github.com/goccy/go-yaml 609 | ---------------------------------------------------------------- 610 | MIT License 611 | 612 | Copyright (c) 2019 Masaaki Goshima 613 | 614 | Permission is hereby granted, free of charge, to any person obtaining a copy 615 | of this software and associated documentation files (the "Software"), to deal 616 | in the Software without restriction, including without limitation the rights 617 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 618 | copies of the Software, and to permit persons to whom the Software is 619 | furnished to do so, subject to the following conditions: 620 | 621 | The above copyright notice and this permission notice shall be included in all 622 | copies or substantial portions of the Software. 623 | 624 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 625 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 626 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 627 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 628 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 629 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 630 | SOFTWARE. 631 | 632 | ================================================================ 633 | 634 | github.com/golang/snappy 635 | https://github.com/golang/snappy 636 | ---------------------------------------------------------------- 637 | Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. 638 | 639 | Redistribution and use in source and binary forms, with or without 640 | modification, are permitted provided that the following conditions are 641 | met: 642 | 643 | * Redistributions of source code must retain the above copyright 644 | notice, this list of conditions and the following disclaimer. 645 | * Redistributions in binary form must reproduce the above 646 | copyright notice, this list of conditions and the following disclaimer 647 | in the documentation and/or other materials provided with the 648 | distribution. 649 | * Neither the name of Google Inc. nor the names of its 650 | contributors may be used to endorse or promote products derived from 651 | this software without specific prior written permission. 652 | 653 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 654 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 655 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 656 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 657 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 658 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 659 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 660 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 661 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 662 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 663 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 664 | 665 | ================================================================ 666 | 667 | github.com/google/go-cmp 668 | https://github.com/google/go-cmp 669 | ---------------------------------------------------------------- 670 | Copyright (c) 2017 The Go Authors. All rights reserved. 671 | 672 | Redistribution and use in source and binary forms, with or without 673 | modification, are permitted provided that the following conditions are 674 | met: 675 | 676 | * Redistributions of source code must retain the above copyright 677 | notice, this list of conditions and the following disclaimer. 678 | * Redistributions in binary form must reproduce the above 679 | copyright notice, this list of conditions and the following disclaimer 680 | in the documentation and/or other materials provided with the 681 | distribution. 682 | * Neither the name of Google Inc. nor the names of its 683 | contributors may be used to endorse or promote products derived from 684 | this software without specific prior written permission. 685 | 686 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 687 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 688 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 689 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 690 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 691 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 692 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 693 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 694 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 695 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 696 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 697 | 698 | ================================================================ 699 | 700 | github.com/google/go-github/v41 701 | https://github.com/google/go-github/v41 702 | ---------------------------------------------------------------- 703 | Copyright (c) 2013 The go-github AUTHORS. All rights reserved. 704 | 705 | Redistribution and use in source and binary forms, with or without 706 | modification, are permitted provided that the following conditions are 707 | met: 708 | 709 | * Redistributions of source code must retain the above copyright 710 | notice, this list of conditions and the following disclaimer. 711 | * Redistributions in binary form must reproduce the above 712 | copyright notice, this list of conditions and the following disclaimer 713 | in the documentation and/or other materials provided with the 714 | distribution. 715 | * Neither the name of Google Inc. nor the names of its 716 | contributors may be used to endorse or promote products derived from 717 | this software without specific prior written permission. 718 | 719 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 720 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 721 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 722 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 723 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 724 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 725 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 726 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 727 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 728 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 729 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 730 | 731 | ================================================================ 732 | 733 | github.com/google/go-querystring 734 | https://github.com/google/go-querystring 735 | ---------------------------------------------------------------- 736 | Copyright (c) 2013 Google. All rights reserved. 737 | 738 | Redistribution and use in source and binary forms, with or without 739 | modification, are permitted provided that the following conditions are 740 | met: 741 | 742 | * Redistributions of source code must retain the above copyright 743 | notice, this list of conditions and the following disclaimer. 744 | * Redistributions in binary form must reproduce the above 745 | copyright notice, this list of conditions and the following disclaimer 746 | in the documentation and/or other materials provided with the 747 | distribution. 748 | * Neither the name of Google Inc. nor the names of its 749 | contributors may be used to endorse or promote products derived from 750 | this software without specific prior written permission. 751 | 752 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 753 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 754 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 755 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 756 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 757 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 758 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 759 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 760 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 761 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 762 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 763 | 764 | ================================================================ 765 | 766 | github.com/jessevdk/go-flags 767 | https://github.com/jessevdk/go-flags 768 | ---------------------------------------------------------------- 769 | Copyright (c) 2012 Jesse van den Kieboom. All rights reserved. 770 | Redistribution and use in source and binary forms, with or without 771 | modification, are permitted provided that the following conditions are 772 | met: 773 | 774 | * Redistributions of source code must retain the above copyright 775 | notice, this list of conditions and the following disclaimer. 776 | * Redistributions in binary form must reproduce the above 777 | copyright notice, this list of conditions and the following disclaimer 778 | in the documentation and/or other materials provided with the 779 | distribution. 780 | * Neither the name of Google Inc. nor the names of its 781 | contributors may be used to endorse or promote products derived from 782 | this software without specific prior written permission. 783 | 784 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 785 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 786 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 787 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 788 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 789 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 790 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 791 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 792 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 793 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 794 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 795 | 796 | ================================================================ 797 | 798 | github.com/klauspost/compress 799 | https://github.com/klauspost/compress 800 | ---------------------------------------------------------------- 801 | Copyright (c) 2012 The Go Authors. All rights reserved. 802 | Copyright (c) 2019 Klaus Post. All rights reserved. 803 | 804 | Redistribution and use in source and binary forms, with or without 805 | modification, are permitted provided that the following conditions are 806 | met: 807 | 808 | * Redistributions of source code must retain the above copyright 809 | notice, this list of conditions and the following disclaimer. 810 | * Redistributions in binary form must reproduce the above 811 | copyright notice, this list of conditions and the following disclaimer 812 | in the documentation and/or other materials provided with the 813 | distribution. 814 | * Neither the name of Google Inc. nor the names of its 815 | contributors may be used to endorse or promote products derived from 816 | this software without specific prior written permission. 817 | 818 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 819 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 820 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 821 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 822 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 823 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 824 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 825 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 826 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 827 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 828 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 829 | 830 | ------------------ 831 | 832 | Files: gzhttp/* 833 | 834 | Apache License 835 | Version 2.0, January 2004 836 | http://www.apache.org/licenses/ 837 | 838 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 839 | 840 | 1. Definitions. 841 | 842 | "License" shall mean the terms and conditions for use, reproduction, 843 | and distribution as defined by Sections 1 through 9 of this document. 844 | 845 | "Licensor" shall mean the copyright owner or entity authorized by 846 | the copyright owner that is granting the License. 847 | 848 | "Legal Entity" shall mean the union of the acting entity and all 849 | other entities that control, are controlled by, or are under common 850 | control with that entity. For the purposes of this definition, 851 | "control" means (i) the power, direct or indirect, to cause the 852 | direction or management of such entity, whether by contract or 853 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 854 | outstanding shares, or (iii) beneficial ownership of such entity. 855 | 856 | "You" (or "Your") shall mean an individual or Legal Entity 857 | exercising permissions granted by this License. 858 | 859 | "Source" form shall mean the preferred form for making modifications, 860 | including but not limited to software source code, documentation 861 | source, and configuration files. 862 | 863 | "Object" form shall mean any form resulting from mechanical 864 | transformation or translation of a Source form, including but 865 | not limited to compiled object code, generated documentation, 866 | and conversions to other media types. 867 | 868 | "Work" shall mean the work of authorship, whether in Source or 869 | Object form, made available under the License, as indicated by a 870 | copyright notice that is included in or attached to the work 871 | (an example is provided in the Appendix below). 872 | 873 | "Derivative Works" shall mean any work, whether in Source or Object 874 | form, that is based on (or derived from) the Work and for which the 875 | editorial revisions, annotations, elaborations, or other modifications 876 | represent, as a whole, an original work of authorship. For the purposes 877 | of this License, Derivative Works shall not include works that remain 878 | separable from, or merely link (or bind by name) to the interfaces of, 879 | the Work and Derivative Works thereof. 880 | 881 | "Contribution" shall mean any work of authorship, including 882 | the original version of the Work and any modifications or additions 883 | to that Work or Derivative Works thereof, that is intentionally 884 | submitted to Licensor for inclusion in the Work by the copyright owner 885 | or by an individual or Legal Entity authorized to submit on behalf of 886 | the copyright owner. For the purposes of this definition, "submitted" 887 | means any form of electronic, verbal, or written communication sent 888 | to the Licensor or its representatives, including but not limited to 889 | communication on electronic mailing lists, source code control systems, 890 | and issue tracking systems that are managed by, or on behalf of, the 891 | Licensor for the purpose of discussing and improving the Work, but 892 | excluding communication that is conspicuously marked or otherwise 893 | designated in writing by the copyright owner as "Not a Contribution." 894 | 895 | "Contributor" shall mean Licensor and any individual or Legal Entity 896 | on behalf of whom a Contribution has been received by Licensor and 897 | subsequently incorporated within the Work. 898 | 899 | 2. Grant of Copyright License. Subject to the terms and conditions of 900 | this License, each Contributor hereby grants to You a perpetual, 901 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 902 | copyright license to reproduce, prepare Derivative Works of, 903 | publicly display, publicly perform, sublicense, and distribute the 904 | Work and such Derivative Works in Source or Object form. 905 | 906 | 3. Grant of Patent License. Subject to the terms and conditions of 907 | this License, each Contributor hereby grants to You a perpetual, 908 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 909 | (except as stated in this section) patent license to make, have made, 910 | use, offer to sell, sell, import, and otherwise transfer the Work, 911 | where such license applies only to those patent claims licensable 912 | by such Contributor that are necessarily infringed by their 913 | Contribution(s) alone or by combination of their Contribution(s) 914 | with the Work to which such Contribution(s) was submitted. If You 915 | institute patent litigation against any entity (including a 916 | cross-claim or counterclaim in a lawsuit) alleging that the Work 917 | or a Contribution incorporated within the Work constitutes direct 918 | or contributory patent infringement, then any patent licenses 919 | granted to You under this License for that Work shall terminate 920 | as of the date such litigation is filed. 921 | 922 | 4. Redistribution. You may reproduce and distribute copies of the 923 | Work or Derivative Works thereof in any medium, with or without 924 | modifications, and in Source or Object form, provided that You 925 | meet the following conditions: 926 | 927 | (a) You must give any other recipients of the Work or 928 | Derivative Works a copy of this License; and 929 | 930 | (b) You must cause any modified files to carry prominent notices 931 | stating that You changed the files; and 932 | 933 | (c) You must retain, in the Source form of any Derivative Works 934 | that You distribute, all copyright, patent, trademark, and 935 | attribution notices from the Source form of the Work, 936 | excluding those notices that do not pertain to any part of 937 | the Derivative Works; and 938 | 939 | (d) If the Work includes a "NOTICE" text file as part of its 940 | distribution, then any Derivative Works that You distribute must 941 | include a readable copy of the attribution notices contained 942 | within such NOTICE file, excluding those notices that do not 943 | pertain to any part of the Derivative Works, in at least one 944 | of the following places: within a NOTICE text file distributed 945 | as part of the Derivative Works; within the Source form or 946 | documentation, if provided along with the Derivative Works; or, 947 | within a display generated by the Derivative Works, if and 948 | wherever such third-party notices normally appear. The contents 949 | of the NOTICE file are for informational purposes only and 950 | do not modify the License. You may add Your own attribution 951 | notices within Derivative Works that You distribute, alongside 952 | or as an addendum to the NOTICE text from the Work, provided 953 | that such additional attribution notices cannot be construed 954 | as modifying the License. 955 | 956 | You may add Your own copyright statement to Your modifications and 957 | may provide additional or different license terms and conditions 958 | for use, reproduction, or distribution of Your modifications, or 959 | for any such Derivative Works as a whole, provided Your use, 960 | reproduction, and distribution of the Work otherwise complies with 961 | the conditions stated in this License. 962 | 963 | 5. Submission of Contributions. Unless You explicitly state otherwise, 964 | any Contribution intentionally submitted for inclusion in the Work 965 | by You to the Licensor shall be under the terms and conditions of 966 | this License, without any additional terms or conditions. 967 | Notwithstanding the above, nothing herein shall supersede or modify 968 | the terms of any separate license agreement you may have executed 969 | with Licensor regarding such Contributions. 970 | 971 | 6. Trademarks. This License does not grant permission to use the trade 972 | names, trademarks, service marks, or product names of the Licensor, 973 | except as required for reasonable and customary use in describing the 974 | origin of the Work and reproducing the content of the NOTICE file. 975 | 976 | 7. Disclaimer of Warranty. Unless required by applicable law or 977 | agreed to in writing, Licensor provides the Work (and each 978 | Contributor provides its Contributions) on an "AS IS" BASIS, 979 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 980 | implied, including, without limitation, any warranties or conditions 981 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 982 | PARTICULAR PURPOSE. You are solely responsible for determining the 983 | appropriateness of using or redistributing the Work and assume any 984 | risks associated with Your exercise of permissions under this License. 985 | 986 | 8. Limitation of Liability. In no event and under no legal theory, 987 | whether in tort (including negligence), contract, or otherwise, 988 | unless required by applicable law (such as deliberate and grossly 989 | negligent acts) or agreed to in writing, shall any Contributor be 990 | liable to You for damages, including any direct, indirect, special, 991 | incidental, or consequential damages of any character arising as a 992 | result of this License or out of the use or inability to use the 993 | Work (including but not limited to damages for loss of goodwill, 994 | work stoppage, computer failure or malfunction, or any and all 995 | other commercial damages or losses), even if such Contributor 996 | has been advised of the possibility of such damages. 997 | 998 | 9. Accepting Warranty or Additional Liability. While redistributing 999 | the Work or Derivative Works thereof, You may choose to offer, 1000 | and charge a fee for, acceptance of support, warranty, indemnity, 1001 | or other liability obligations and/or rights consistent with this 1002 | License. However, in accepting such obligations, You may act only 1003 | on Your own behalf and on Your sole responsibility, not on behalf 1004 | of any other Contributor, and only if You agree to indemnify, 1005 | defend, and hold each Contributor harmless for any liability 1006 | incurred by, or claims asserted against, such Contributor by reason 1007 | of your accepting any such warranty or additional liability. 1008 | 1009 | END OF TERMS AND CONDITIONS 1010 | 1011 | APPENDIX: How to apply the Apache License to your work. 1012 | 1013 | To apply the Apache License to your work, attach the following 1014 | boilerplate notice, with the fields enclosed by brackets "[]" 1015 | replaced with your own identifying information. (Don't include 1016 | the brackets!) The text should be enclosed in the appropriate 1017 | comment syntax for the file format. We also recommend that a 1018 | file or class name and description of purpose be included on the 1019 | same "printed page" as the copyright notice for easier 1020 | identification within third-party archives. 1021 | 1022 | Copyright 2016-2017 The New York Times Company 1023 | 1024 | Licensed under the Apache License, Version 2.0 (the "License"); 1025 | you may not use this file except in compliance with the License. 1026 | You may obtain a copy of the License at 1027 | 1028 | http://www.apache.org/licenses/LICENSE-2.0 1029 | 1030 | Unless required by applicable law or agreed to in writing, software 1031 | distributed under the License is distributed on an "AS IS" BASIS, 1032 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1033 | See the License for the specific language governing permissions and 1034 | limitations under the License. 1035 | 1036 | ------------------ 1037 | 1038 | Files: s2/cmd/internal/readahead/* 1039 | 1040 | The MIT License (MIT) 1041 | 1042 | Copyright (c) 2015 Klaus Post 1043 | 1044 | Permission is hereby granted, free of charge, to any person obtaining a copy 1045 | of this software and associated documentation files (the "Software"), to deal 1046 | in the Software without restriction, including without limitation the rights 1047 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1048 | copies of the Software, and to permit persons to whom the Software is 1049 | furnished to do so, subject to the following conditions: 1050 | 1051 | The above copyright notice and this permission notice shall be included in all 1052 | copies or substantial portions of the Software. 1053 | 1054 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1055 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1056 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1057 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1058 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1059 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1060 | SOFTWARE. 1061 | 1062 | --------------------- 1063 | Files: snappy/* 1064 | Files: internal/snapref/* 1065 | 1066 | Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. 1067 | 1068 | Redistribution and use in source and binary forms, with or without 1069 | modification, are permitted provided that the following conditions are 1070 | met: 1071 | 1072 | * Redistributions of source code must retain the above copyright 1073 | notice, this list of conditions and the following disclaimer. 1074 | * Redistributions in binary form must reproduce the above 1075 | copyright notice, this list of conditions and the following disclaimer 1076 | in the documentation and/or other materials provided with the 1077 | distribution. 1078 | * Neither the name of Google Inc. nor the names of its 1079 | contributors may be used to endorse or promote products derived from 1080 | this software without specific prior written permission. 1081 | 1082 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1083 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1084 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1085 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1086 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1087 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1088 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1089 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1090 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1091 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1092 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1093 | 1094 | ----------------- 1095 | 1096 | Files: s2/cmd/internal/filepathx/* 1097 | 1098 | Copyright 2016 The filepathx Authors 1099 | 1100 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1101 | 1102 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1103 | 1104 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1105 | 1106 | ================================================================ 1107 | 1108 | github.com/klauspost/pgzip 1109 | https://github.com/klauspost/pgzip 1110 | ---------------------------------------------------------------- 1111 | The MIT License (MIT) 1112 | 1113 | Copyright (c) 2014 Klaus Post 1114 | 1115 | Permission is hereby granted, free of charge, to any person obtaining a copy 1116 | of this software and associated documentation files (the "Software"), to deal 1117 | in the Software without restriction, including without limitation the rights 1118 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1119 | copies of the Software, and to permit persons to whom the Software is 1120 | furnished to do so, subject to the following conditions: 1121 | 1122 | The above copyright notice and this permission notice shall be included in all 1123 | copies or substantial portions of the Software. 1124 | 1125 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1126 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1127 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1128 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1129 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1130 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1131 | SOFTWARE. 1132 | 1133 | 1134 | ================================================================ 1135 | 1136 | github.com/kr/pretty 1137 | https://github.com/kr/pretty 1138 | ---------------------------------------------------------------- 1139 | The MIT License (MIT) 1140 | 1141 | Copyright 2012 Keith Rarick 1142 | 1143 | Permission is hereby granted, free of charge, to any person obtaining a copy 1144 | of this software and associated documentation files (the "Software"), to deal 1145 | in the Software without restriction, including without limitation the rights 1146 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1147 | copies of the Software, and to permit persons to whom the Software is 1148 | furnished to do so, subject to the following conditions: 1149 | 1150 | The above copyright notice and this permission notice shall be included in 1151 | all copies or substantial portions of the Software. 1152 | 1153 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1154 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1155 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1156 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1157 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1158 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1159 | THE SOFTWARE. 1160 | 1161 | ================================================================ 1162 | 1163 | github.com/kr/text 1164 | https://github.com/kr/text 1165 | ---------------------------------------------------------------- 1166 | Copyright 2012 Keith Rarick 1167 | 1168 | Permission is hereby granted, free of charge, to any person obtaining a copy 1169 | of this software and associated documentation files (the "Software"), to deal 1170 | in the Software without restriction, including without limitation the rights 1171 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1172 | copies of the Software, and to permit persons to whom the Software is 1173 | furnished to do so, subject to the following conditions: 1174 | 1175 | The above copyright notice and this permission notice shall be included in 1176 | all copies or substantial portions of the Software. 1177 | 1178 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1179 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1180 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1181 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1182 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1183 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1184 | THE SOFTWARE. 1185 | 1186 | ================================================================ 1187 | 1188 | github.com/leodido/go-urn 1189 | https://github.com/leodido/go-urn 1190 | ---------------------------------------------------------------- 1191 | MIT License 1192 | 1193 | Copyright (c) 2018 Leonardo Di Donato 1194 | 1195 | Permission is hereby granted, free of charge, to any person obtaining a copy 1196 | of this software and associated documentation files (the "Software"), to deal 1197 | in the Software without restriction, including without limitation the rights 1198 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1199 | copies of the Software, and to permit persons to whom the Software is 1200 | furnished to do so, subject to the following conditions: 1201 | 1202 | The above copyright notice and this permission notice shall be included in all 1203 | copies or substantial portions of the Software. 1204 | 1205 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1206 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1207 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1208 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1209 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1210 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1211 | SOFTWARE. 1212 | 1213 | ================================================================ 1214 | 1215 | github.com/manifoldco/promptui 1216 | https://github.com/manifoldco/promptui 1217 | ---------------------------------------------------------------- 1218 | BSD 3-Clause License 1219 | 1220 | Copyright (c) 2017, Arigato Machine Inc. 1221 | All rights reserved. 1222 | 1223 | Redistribution and use in source and binary forms, with or without 1224 | modification, are permitted provided that the following conditions are met: 1225 | 1226 | * Redistributions of source code must retain the above copyright notice, this 1227 | list of conditions and the following disclaimer. 1228 | 1229 | * Redistributions in binary form must reproduce the above copyright notice, 1230 | this list of conditions and the following disclaimer in the documentation 1231 | and/or other materials provided with the distribution. 1232 | 1233 | * Neither the name of the copyright holder nor the names of its 1234 | contributors may be used to endorse or promote products derived from 1235 | this software without specific prior written permission. 1236 | 1237 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1238 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1239 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1240 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 1241 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1242 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1243 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1244 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1245 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1246 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1247 | 1248 | ================================================================ 1249 | 1250 | github.com/mattn/go-colorable 1251 | https://github.com/mattn/go-colorable 1252 | ---------------------------------------------------------------- 1253 | The MIT License (MIT) 1254 | 1255 | Copyright (c) 2016 Yasuhiro Matsumoto 1256 | 1257 | Permission is hereby granted, free of charge, to any person obtaining a copy 1258 | of this software and associated documentation files (the "Software"), to deal 1259 | in the Software without restriction, including without limitation the rights 1260 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1261 | copies of the Software, and to permit persons to whom the Software is 1262 | furnished to do so, subject to the following conditions: 1263 | 1264 | The above copyright notice and this permission notice shall be included in all 1265 | copies or substantial portions of the Software. 1266 | 1267 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1268 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1269 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1270 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1271 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1272 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1273 | SOFTWARE. 1274 | 1275 | ================================================================ 1276 | 1277 | github.com/mattn/go-isatty 1278 | https://github.com/mattn/go-isatty 1279 | ---------------------------------------------------------------- 1280 | Copyright (c) Yasuhiro MATSUMOTO 1281 | 1282 | MIT License (Expat) 1283 | 1284 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1285 | 1286 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1287 | 1288 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1289 | 1290 | ================================================================ 1291 | 1292 | github.com/mattn/go-tty 1293 | https://github.com/mattn/go-tty 1294 | ---------------------------------------------------------------- 1295 | The MIT License (MIT) 1296 | 1297 | Copyright (c) 2018 Yasuhiro Matsumoto 1298 | 1299 | Permission is hereby granted, free of charge, to any person obtaining a copy 1300 | of this software and associated documentation files (the "Software"), to deal 1301 | in the Software without restriction, including without limitation the rights 1302 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1303 | copies of the Software, and to permit persons to whom the Software is 1304 | furnished to do so, subject to the following conditions: 1305 | 1306 | The above copyright notice and this permission notice shall be included in all 1307 | copies or substantial portions of the Software. 1308 | 1309 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1310 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1311 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1312 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1313 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1314 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1315 | SOFTWARE. 1316 | 1317 | ================================================================ 1318 | 1319 | github.com/mholt/archiver/v3 1320 | https://github.com/mholt/archiver/v3 1321 | ---------------------------------------------------------------- 1322 | MIT License 1323 | 1324 | Copyright (c) 2016 Matthew Holt 1325 | 1326 | Permission is hereby granted, free of charge, to any person obtaining a copy 1327 | of this software and associated documentation files (the "Software"), to deal 1328 | in the Software without restriction, including without limitation the rights 1329 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1330 | copies of the Software, and to permit persons to whom the Software is 1331 | furnished to do so, subject to the following conditions: 1332 | 1333 | The above copyright notice and this permission notice shall be included in all 1334 | copies or substantial portions of the Software. 1335 | 1336 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1337 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1338 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1339 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1340 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1341 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1342 | SOFTWARE. 1343 | ================================================================ 1344 | 1345 | github.com/natefinch/atomic 1346 | https://github.com/natefinch/atomic 1347 | ---------------------------------------------------------------- 1348 | The MIT License (MIT) 1349 | 1350 | Copyright (c) 2015 Nate Finch 1351 | 1352 | Permission is hereby granted, free of charge, to any person obtaining a copy 1353 | of this software and associated documentation files (the "Software"), to deal 1354 | in the Software without restriction, including without limitation the rights 1355 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1356 | copies of the Software, and to permit persons to whom the Software is 1357 | furnished to do so, subject to the following conditions: 1358 | 1359 | The above copyright notice and this permission notice shall be included in all 1360 | copies or substantial portions of the Software. 1361 | 1362 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1363 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1364 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1365 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1366 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1367 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1368 | SOFTWARE. 1369 | 1370 | 1371 | ================================================================ 1372 | 1373 | github.com/nwaples/rardecode 1374 | https://github.com/nwaples/rardecode 1375 | ---------------------------------------------------------------- 1376 | Copyright (c) 2015, Nicholas Waples 1377 | All rights reserved. 1378 | 1379 | Redistribution and use in source and binary forms, with or without 1380 | modification, are permitted provided that the following conditions are met: 1381 | 1382 | * Redistributions of source code must retain the above copyright notice, this 1383 | list of conditions and the following disclaimer. 1384 | 1385 | * Redistributions in binary form must reproduce the above copyright notice, 1386 | this list of conditions and the following disclaimer in the documentation 1387 | and/or other materials provided with the distribution. 1388 | 1389 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1390 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1391 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1392 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 1393 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1394 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1395 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1396 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1397 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1398 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1399 | 1400 | ================================================================ 1401 | 1402 | github.com/pierrec/lz4/v4 1403 | https://github.com/pierrec/lz4/v4 1404 | ---------------------------------------------------------------- 1405 | Copyright (c) 2015, Pierre Curto 1406 | All rights reserved. 1407 | 1408 | Redistribution and use in source and binary forms, with or without 1409 | modification, are permitted provided that the following conditions are met: 1410 | 1411 | * Redistributions of source code must retain the above copyright notice, this 1412 | list of conditions and the following disclaimer. 1413 | 1414 | * Redistributions in binary form must reproduce the above copyright notice, 1415 | this list of conditions and the following disclaimer in the documentation 1416 | and/or other materials provided with the distribution. 1417 | 1418 | * Neither the name of xxHash nor the names of its 1419 | contributors may be used to endorse or promote products derived from 1420 | this software without specific prior written permission. 1421 | 1422 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1423 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1424 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1425 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 1426 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1427 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1428 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1429 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1430 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1431 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1432 | 1433 | 1434 | ================================================================ 1435 | 1436 | github.com/pkg/errors 1437 | https://github.com/pkg/errors 1438 | ---------------------------------------------------------------- 1439 | Copyright (c) 2015, Dave Cheney 1440 | All rights reserved. 1441 | 1442 | Redistribution and use in source and binary forms, with or without 1443 | modification, are permitted provided that the following conditions are met: 1444 | 1445 | * Redistributions of source code must retain the above copyright notice, this 1446 | list of conditions and the following disclaimer. 1447 | 1448 | * Redistributions in binary form must reproduce the above copyright notice, 1449 | this list of conditions and the following disclaimer in the documentation 1450 | and/or other materials provided with the distribution. 1451 | 1452 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1453 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1454 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1455 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 1456 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1457 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1458 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1459 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1460 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1461 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1462 | 1463 | ================================================================ 1464 | 1465 | github.com/pmezard/go-difflib 1466 | https://github.com/pmezard/go-difflib 1467 | ---------------------------------------------------------------- 1468 | Copyright (c) 2013, Patrick Mezard 1469 | All rights reserved. 1470 | 1471 | Redistribution and use in source and binary forms, with or without 1472 | modification, are permitted provided that the following conditions are 1473 | met: 1474 | 1475 | Redistributions of source code must retain the above copyright 1476 | notice, this list of conditions and the following disclaimer. 1477 | Redistributions in binary form must reproduce the above copyright 1478 | notice, this list of conditions and the following disclaimer in the 1479 | documentation and/or other materials provided with the distribution. 1480 | The names of its contributors may not be used to endorse or promote 1481 | products derived from this software without specific prior written 1482 | permission. 1483 | 1484 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 1485 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 1486 | TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 1487 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1488 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1489 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 1490 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 1491 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 1492 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 1493 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 1494 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1495 | 1496 | ================================================================ 1497 | 1498 | github.com/stretchr/testify 1499 | https://github.com/stretchr/testify 1500 | ---------------------------------------------------------------- 1501 | MIT License 1502 | 1503 | Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. 1504 | 1505 | Permission is hereby granted, free of charge, to any person obtaining a copy 1506 | of this software and associated documentation files (the "Software"), to deal 1507 | in the Software without restriction, including without limitation the rights 1508 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1509 | copies of the Software, and to permit persons to whom the Software is 1510 | furnished to do so, subject to the following conditions: 1511 | 1512 | The above copyright notice and this permission notice shall be included in all 1513 | copies or substantial portions of the Software. 1514 | 1515 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1516 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1517 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1518 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1519 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1520 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1521 | SOFTWARE. 1522 | 1523 | ================================================================ 1524 | 1525 | github.com/ulikunitz/xz 1526 | https://github.com/ulikunitz/xz 1527 | ---------------------------------------------------------------- 1528 | Copyright (c) 2014-2022 Ulrich Kunitz 1529 | All rights reserved. 1530 | 1531 | Redistribution and use in source and binary forms, with or without 1532 | modification, are permitted provided that the following conditions are met: 1533 | 1534 | * Redistributions of source code must retain the above copyright notice, this 1535 | list of conditions and the following disclaimer. 1536 | 1537 | * Redistributions in binary form must reproduce the above copyright notice, 1538 | this list of conditions and the following disclaimer in the documentation 1539 | and/or other materials provided with the distribution. 1540 | 1541 | * My name, Ulrich Kunitz, may not be used to endorse or promote products 1542 | derived from this software without specific prior written permission. 1543 | 1544 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1545 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1546 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1547 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 1548 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1549 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1550 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1551 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1552 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1553 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1554 | 1555 | ================================================================ 1556 | 1557 | github.com/x-motemen/gobump 1558 | https://github.com/x-motemen/gobump 1559 | ---------------------------------------------------------------- 1560 | Copyright (c) 2017 motemen 1561 | 1562 | MIT License 1563 | 1564 | Permission is hereby granted, free of charge, to any person obtaining 1565 | a copy of this software and associated documentation files (the 1566 | "Software"), to deal in the Software without restriction, including 1567 | without limitation the rights to use, copy, modify, merge, publish, 1568 | distribute, sublicense, and/or sell copies of the Software, and to 1569 | permit persons to whom the Software is furnished to do so, subject to 1570 | the following conditions: 1571 | 1572 | The above copyright notice and this permission notice shall be 1573 | included in all copies or substantial portions of the Software. 1574 | 1575 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1576 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1577 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1578 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1579 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1580 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1581 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1582 | 1583 | ================================================================ 1584 | 1585 | github.com/xi2/xz 1586 | https://github.com/xi2/xz 1587 | ---------------------------------------------------------------- 1588 | Licensing of github.com/xi2/xz 1589 | ============================== 1590 | 1591 | This Go package is a modified version of 1592 | 1593 | XZ Embedded 1594 | 1595 | The contents of the testdata directory are modified versions of 1596 | the test files from 1597 | 1598 | XZ Utils 1599 | 1600 | All the files in this package have been written by Michael Cross, 1601 | Lasse Collin and/or Igor PavLov. All these files have been put 1602 | into the public domain. You can do whatever you want with these 1603 | files. 1604 | 1605 | This software is provided "as is", without any warranty. 1606 | 1607 | ================================================================ 1608 | 1609 | golang.org/x/crypto 1610 | https://golang.org/x/crypto 1611 | ---------------------------------------------------------------- 1612 | Copyright 2009 The Go Authors. 1613 | 1614 | Redistribution and use in source and binary forms, with or without 1615 | modification, are permitted provided that the following conditions are 1616 | met: 1617 | 1618 | * Redistributions of source code must retain the above copyright 1619 | notice, this list of conditions and the following disclaimer. 1620 | * Redistributions in binary form must reproduce the above 1621 | copyright notice, this list of conditions and the following disclaimer 1622 | in the documentation and/or other materials provided with the 1623 | distribution. 1624 | * Neither the name of Google LLC nor the names of its 1625 | contributors may be used to endorse or promote products derived from 1626 | this software without specific prior written permission. 1627 | 1628 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1629 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1630 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1631 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1632 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1633 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1634 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1635 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1636 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1637 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1638 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1639 | 1640 | ================================================================ 1641 | 1642 | golang.org/x/mod 1643 | https://golang.org/x/mod 1644 | ---------------------------------------------------------------- 1645 | Copyright 2009 The Go Authors. 1646 | 1647 | Redistribution and use in source and binary forms, with or without 1648 | modification, are permitted provided that the following conditions are 1649 | met: 1650 | 1651 | * Redistributions of source code must retain the above copyright 1652 | notice, this list of conditions and the following disclaimer. 1653 | * Redistributions in binary form must reproduce the above 1654 | copyright notice, this list of conditions and the following disclaimer 1655 | in the documentation and/or other materials provided with the 1656 | distribution. 1657 | * Neither the name of Google LLC nor the names of its 1658 | contributors may be used to endorse or promote products derived from 1659 | this software without specific prior written permission. 1660 | 1661 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1662 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1663 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1664 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1665 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1666 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1667 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1668 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1669 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1670 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1671 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1672 | 1673 | ================================================================ 1674 | 1675 | golang.org/x/oauth2 1676 | https://golang.org/x/oauth2 1677 | ---------------------------------------------------------------- 1678 | Copyright 2009 The Go Authors. 1679 | 1680 | Redistribution and use in source and binary forms, with or without 1681 | modification, are permitted provided that the following conditions are 1682 | met: 1683 | 1684 | * Redistributions of source code must retain the above copyright 1685 | notice, this list of conditions and the following disclaimer. 1686 | * Redistributions in binary form must reproduce the above 1687 | copyright notice, this list of conditions and the following disclaimer 1688 | in the documentation and/or other materials provided with the 1689 | distribution. 1690 | * Neither the name of Google LLC nor the names of its 1691 | contributors may be used to endorse or promote products derived from 1692 | this software without specific prior written permission. 1693 | 1694 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1695 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1696 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1697 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1698 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1699 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1700 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1701 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1702 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1703 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1704 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1705 | 1706 | ================================================================ 1707 | 1708 | golang.org/x/sync 1709 | https://golang.org/x/sync 1710 | ---------------------------------------------------------------- 1711 | Copyright 2009 The Go Authors. 1712 | 1713 | Redistribution and use in source and binary forms, with or without 1714 | modification, are permitted provided that the following conditions are 1715 | met: 1716 | 1717 | * Redistributions of source code must retain the above copyright 1718 | notice, this list of conditions and the following disclaimer. 1719 | * Redistributions in binary form must reproduce the above 1720 | copyright notice, this list of conditions and the following disclaimer 1721 | in the documentation and/or other materials provided with the 1722 | distribution. 1723 | * Neither the name of Google LLC nor the names of its 1724 | contributors may be used to endorse or promote products derived from 1725 | this software without specific prior written permission. 1726 | 1727 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1728 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1729 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1730 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1731 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1732 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1733 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1734 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1735 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1736 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1737 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1738 | 1739 | ================================================================ 1740 | 1741 | golang.org/x/sys 1742 | https://golang.org/x/sys 1743 | ---------------------------------------------------------------- 1744 | Copyright 2009 The Go Authors. 1745 | 1746 | Redistribution and use in source and binary forms, with or without 1747 | modification, are permitted provided that the following conditions are 1748 | met: 1749 | 1750 | * Redistributions of source code must retain the above copyright 1751 | notice, this list of conditions and the following disclaimer. 1752 | * Redistributions in binary form must reproduce the above 1753 | copyright notice, this list of conditions and the following disclaimer 1754 | in the documentation and/or other materials provided with the 1755 | distribution. 1756 | * Neither the name of Google LLC nor the names of its 1757 | contributors may be used to endorse or promote products derived from 1758 | this software without specific prior written permission. 1759 | 1760 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1761 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1762 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1763 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1764 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1765 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1766 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1767 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1768 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1769 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1770 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1771 | 1772 | ================================================================ 1773 | 1774 | golang.org/x/term 1775 | https://golang.org/x/term 1776 | ---------------------------------------------------------------- 1777 | Copyright 2009 The Go Authors. 1778 | 1779 | Redistribution and use in source and binary forms, with or without 1780 | modification, are permitted provided that the following conditions are 1781 | met: 1782 | 1783 | * Redistributions of source code must retain the above copyright 1784 | notice, this list of conditions and the following disclaimer. 1785 | * Redistributions in binary form must reproduce the above 1786 | copyright notice, this list of conditions and the following disclaimer 1787 | in the documentation and/or other materials provided with the 1788 | distribution. 1789 | * Neither the name of Google LLC nor the names of its 1790 | contributors may be used to endorse or promote products derived from 1791 | this software without specific prior written permission. 1792 | 1793 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1794 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1795 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1796 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1797 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1798 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1799 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1800 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1801 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1802 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1803 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1804 | 1805 | ================================================================ 1806 | 1807 | golang.org/x/xerrors 1808 | https://golang.org/x/xerrors 1809 | ---------------------------------------------------------------- 1810 | Copyright 2019 The Go Authors. 1811 | 1812 | Redistribution and use in source and binary forms, with or without 1813 | modification, are permitted provided that the following conditions are 1814 | met: 1815 | 1816 | * Redistributions of source code must retain the above copyright 1817 | notice, this list of conditions and the following disclaimer. 1818 | * Redistributions in binary form must reproduce the above 1819 | copyright notice, this list of conditions and the following disclaimer 1820 | in the documentation and/or other materials provided with the 1821 | distribution. 1822 | * Neither the name of Google LLC nor the names of its 1823 | contributors may be used to endorse or promote products derived from 1824 | this software without specific prior written permission. 1825 | 1826 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1827 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1828 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1829 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1830 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1831 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1832 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1833 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1834 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1835 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1836 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1837 | 1838 | ================================================================ 1839 | 1840 | gopkg.in/check.v1 1841 | https://gopkg.in/check.v1 1842 | ---------------------------------------------------------------- 1843 | Gocheck - A rich testing framework for Go 1844 | 1845 | Copyright (c) 2010-2013 Gustavo Niemeyer 1846 | 1847 | All rights reserved. 1848 | 1849 | Redistribution and use in source and binary forms, with or without 1850 | modification, are permitted provided that the following conditions are met: 1851 | 1852 | 1. Redistributions of source code must retain the above copyright notice, this 1853 | list of conditions and the following disclaimer. 1854 | 2. Redistributions in binary form must reproduce the above copyright notice, 1855 | this list of conditions and the following disclaimer in the documentation 1856 | and/or other materials provided with the distribution. 1857 | 1858 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 1859 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1860 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1861 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 1862 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1863 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 1864 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1865 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1866 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 1867 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1868 | 1869 | ================================================================ 1870 | 1871 | gopkg.in/yaml.v3 1872 | https://gopkg.in/yaml.v3 1873 | ---------------------------------------------------------------- 1874 | 1875 | This project is covered by two different licenses: MIT and Apache. 1876 | 1877 | #### MIT License #### 1878 | 1879 | The following files were ported to Go from C files of libyaml, and thus 1880 | are still covered by their original MIT license, with the additional 1881 | copyright staring in 2011 when the project was ported over: 1882 | 1883 | apic.go emitterc.go parserc.go readerc.go scannerc.go 1884 | writerc.go yamlh.go yamlprivateh.go 1885 | 1886 | Copyright (c) 2006-2010 Kirill Simonov 1887 | Copyright (c) 2006-2011 Kirill Simonov 1888 | 1889 | Permission is hereby granted, free of charge, to any person obtaining a copy of 1890 | this software and associated documentation files (the "Software"), to deal in 1891 | the Software without restriction, including without limitation the rights to 1892 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 1893 | of the Software, and to permit persons to whom the Software is furnished to do 1894 | so, subject to the following conditions: 1895 | 1896 | The above copyright notice and this permission notice shall be included in all 1897 | copies or substantial portions of the Software. 1898 | 1899 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1900 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1901 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1902 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1903 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1904 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1905 | SOFTWARE. 1906 | 1907 | ### Apache License ### 1908 | 1909 | All the remaining project files are covered by the Apache license: 1910 | 1911 | Copyright (c) 2011-2019 Canonical Ltd 1912 | 1913 | Licensed under the Apache License, Version 2.0 (the "License"); 1914 | you may not use this file except in compliance with the License. 1915 | You may obtain a copy of the License at 1916 | 1917 | http://www.apache.org/licenses/LICENSE-2.0 1918 | 1919 | Unless required by applicable law or agreed to in writing, software 1920 | distributed under the License is distributed on an "AS IS" BASIS, 1921 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1922 | See the License for the specific language governing permissions and 1923 | limitations under the License. 1924 | 1925 | ================================================================ 1926 | 1927 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019 Songmu 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | VERSION = $(shell ./godzil show-version) 2 | CURRENT_REVISION = $(shell git rev-parse --short HEAD) 3 | BUILD_LDFLAGS = "-s -w -X github.com/Songmu/godzil.revision=$(CURRENT_REVISION)" 4 | u := $(if $(update),-u) 5 | 6 | .PHONY: deps 7 | deps: 8 | go get ${u} 9 | go mod tidy 10 | 11 | .PHONY: devel-deps 12 | devel-deps: build 13 | go install github.com/tcnksm/ghr@latest 14 | 15 | .PHONY: test 16 | test: 17 | go test 18 | make assets-test 19 | 20 | .PHONY: assets-test 21 | assets-test: 22 | make assets 23 | @git diff --exit-code --quiet testdata/assets || \ 24 | (echo '💢 Inconsistency in testdata/assets' && false) 25 | 26 | .PHONY: build 27 | build: 28 | go build -ldflags=$(BUILD_LDFLAGS) ./cmd/godzil 29 | 30 | .PHONY: assets 31 | assets: 32 | for profile in simple basic web; do \ 33 | cp -r testdata/assets/_common/ testdata/assets/$$profile; \ 34 | done 35 | 36 | .PHONY: install 37 | install: 38 | go install -ldflags=$(BUILD_LDFLAGS) ./cmd/godzil 39 | 40 | .PHONY: release 41 | release: devel-deps 42 | ./godzil release 43 | 44 | CREDITS: deps devel-deps go.sum 45 | ./godzil credits -w 46 | 47 | .PHONY: crossbuild 48 | crossbuild: CREDITS 49 | ./godzil crossbuild -pv=v$(VERSION) -build-ldflags=$(BUILD_LDFLAGS) \ 50 | -os=linux,darwin,windows -d=./dist/v$(VERSION) ./cmd/* 51 | 52 | .PHONY: upload 53 | upload: 54 | ghr -body="$$(./godzil changelog --latest -F markdown)" v$(VERSION) dist/v$(VERSION) 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | godzil 2 | ======= 3 | 4 | [![Test Status](https://github.com/Songmu/godzil/workflows/test/badge.svg?branch=main)][actions] 5 | [![MIT License](https://img.shields.io/github/license/Songmu/godzil)][license] 6 | [![PkgGoDev](https://pkg.go.dev/badge/github.com/Songmu/godzil)][PkgGoDev] 7 | 8 | [actions]: https://github.com/Songmu/godzil/actions?workflow=test 9 | [license]: https://github.com/Songmu/godzil/blob/main/LICENSE 10 | [PkgGoDev]: https://pkg.go.dev/github.com/Songmu/godzil 11 | 12 | A module authoring tool 13 | 14 | ## Description 15 | 16 | A module authoring tool inspired from Minilla. (STILL ALPHA QUALITY) 17 | 18 | ## Installation 19 | 20 | ### go install 21 | 22 | % go install github.com/Songmu/godzil/cmd/godzil@latest 23 | 24 | ### homebrew 25 | 26 | % brew install Songmu/tap/godzil 27 | 28 | ### using [ghg](https://github.com/Songmu/ghg) 29 | 30 | % ghg get Songmu/godzil 31 | 32 | ### using [aqua](https://aquaproj.github.io/) 33 | 34 | % aqua g -i Songmu/godzil 35 | 36 | Built binaries are available on gihub releases. 37 | 38 | 39 | ## See Also 40 | 41 | [Minilla](https://github.com/tokuhirom/Minilla) 42 | 43 | ## Author 44 | 45 | [Songmu](https://github.com/Songmu) 46 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | - (?) default profile in config 2 | - remote custom profile feature 3 | - local configration file 4 | - release hook 5 | - (?) suggest next version from compatibility 6 | - (?) generate doc.go from README.md 7 | -------------------------------------------------------------------------------- /cmd/godzil/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "flag" 6 | "log" 7 | "os" 8 | 9 | "github.com/Songmu/godzil" 10 | ) 11 | 12 | func main() { 13 | log.SetFlags(0) 14 | err := godzil.Run(context.Background(), os.Args[1:], os.Stdout, os.Stderr) 15 | if err != nil && err != flag.ErrHelp { 16 | log.Println(err) 17 | os.Exit(1) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /cmd_changelog.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "context" 5 | "io" 6 | 7 | "github.com/Songmu/ghch" 8 | ) 9 | 10 | type changelog struct { 11 | } 12 | 13 | func (gh *changelog) run(argv []string, outStream, errStream io.Writer) error { 14 | return ghch.Run(context.Background(), argv, outStream, errStream) 15 | } 16 | -------------------------------------------------------------------------------- /cmd_credits.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "io" 5 | 6 | "github.com/Songmu/gocredits" 7 | ) 8 | 9 | type credits struct { 10 | } 11 | 12 | func (cr *credits) run(argv []string, outStream, errStream io.Writer) error { 13 | return gocredits.Run(argv, outStream, errStream) 14 | } 15 | -------------------------------------------------------------------------------- /cmd_crossbuild.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "context" 5 | "io" 6 | 7 | "github.com/Songmu/goxz" 8 | ) 9 | 10 | type crossbuild struct { 11 | } 12 | 13 | func (cb *crossbuild) run(argv []string, outStream, errStream io.Writer) error { 14 | return goxz.Run(context.Background(), argv, outStream, errStream) 15 | } 16 | -------------------------------------------------------------------------------- /cmd_new.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "embed" 5 | "flag" 6 | "fmt" 7 | "io" 8 | "io/fs" 9 | "io/ioutil" 10 | "log" 11 | "os" 12 | "os/exec" 13 | "path/filepath" 14 | "regexp" 15 | "strings" 16 | "time" 17 | 18 | "github.com/Songmu/gokoku" 19 | ) 20 | 21 | //go:embed all:testdata/assets/basic all:testdata/assets/simple all:testdata/assets/web 22 | var embedFs embed.FS 23 | 24 | type new struct { 25 | Author, PackagePath, Branch string 26 | GitHubHost, Owner, Package string 27 | Year int 28 | 29 | projDir string 30 | profile string 31 | config *config 32 | outStream, errStream io.Writer 33 | } 34 | 35 | func (ne *new) run(argv []string, outStream, errStream io.Writer) error { 36 | ne.outStream = outStream 37 | ne.errStream = errStream 38 | 39 | fs := flag.NewFlagSet("godzil new", flag.ContinueOnError) 40 | fs.SetOutput(errStream) 41 | fs.StringVar(&ne.Author, "author", "", "Author name") 42 | fs.StringVar(&ne.profile, "profile", "basic", "template profile") 43 | fs.StringVar(&ne.Branch, "branch", "", "release branch") 44 | if err := fs.Parse(argv); err != nil { 45 | return err 46 | } 47 | ne.PackagePath = fs.Arg(0) 48 | if ne.PackagePath == "" { 49 | ne.PackagePath = "." 50 | } 51 | if ne.Author == "" { 52 | ne.Author, _, _ = git("config", "user.name") 53 | } 54 | var err error 55 | ne.config, err = loadConfig() 56 | if err != nil { 57 | return err 58 | } 59 | return ne.do() 60 | } 61 | 62 | var ( 63 | hostReg = regexp.MustCompile(`^[A-Za-z0-9](?:\.[A-Za-z]+)+$`) 64 | packageReg = regexp.MustCompile(`([A-Za-z0-9](?:\.[A-Za-z]+)+(?:/[^/]+){2,})$`) 65 | ) 66 | 67 | func (ne *new) parsePackage() error { 68 | if strings.HasPrefix(ne.PackagePath, ".") { 69 | abs, err := filepath.Abs(ne.PackagePath) 70 | if err != nil { 71 | return err 72 | } 73 | abs = filepath.ToSlash(abs) 74 | m := packageReg.FindStringSubmatch(abs) 75 | if len(m) < 2 { 76 | return fmt.Errorf("invalid package path: %q", abs) 77 | } 78 | ne.PackagePath = m[1] 79 | ne.projDir = abs 80 | } 81 | 82 | m := strings.Split(ne.PackagePath, "/") 83 | ne.Package = m[len(m)-1] 84 | switch len(m) { 85 | case 1, 2: 86 | ne.GitHubHost = ne.config.host() 87 | if len(m) == 2 { 88 | ne.Owner = m[0] 89 | } else { 90 | var err error 91 | ne.Owner, err = ne.config.user() 92 | if err != nil { 93 | return err 94 | } 95 | } 96 | ne.PackagePath = strings.Join([]string{ne.GitHubHost, ne.Owner, ne.Package}, "/") 97 | default: 98 | if !hostReg.MatchString(m[0]) { 99 | return fmt.Errorf("invalid pacakge path %q. please specify full package path", 100 | ne.PackagePath) 101 | } 102 | ne.GitHubHost = m[0] 103 | ne.Owner = m[1] 104 | } 105 | if ne.Author == "" { 106 | ne.Author = ne.Owner 107 | } 108 | ne.Year = time.Now().Year() 109 | return nil 110 | } 111 | 112 | func (ne *new) do() error { 113 | if ne.Branch == "" { 114 | b, e, err := git("config", "init.defaultBranch") 115 | b = strings.TrimSpace(b) 116 | e = strings.TrimSpace(e) 117 | // ignore empty config error 118 | if err != nil && (err.Error() != "exit status 1" || b != "" || e != "") { 119 | return fmt.Errorf("failed to detect default branch: %w", err) 120 | } 121 | if b != "" { 122 | ne.Branch = b 123 | } else { 124 | ne.Branch = "master" 125 | } 126 | } 127 | if err := ne.parsePackage(); err != nil { 128 | return err 129 | } 130 | root, err := ne.config.root() 131 | if err != nil { 132 | return err 133 | } 134 | 135 | if ne.projDir == "" { 136 | if root != "" { 137 | ne.projDir = filepath.Join(root, ne.PackagePath) 138 | } else { 139 | ne.projDir = ne.Package 140 | } 141 | } 142 | 143 | if d, err := os.Open(ne.projDir); err == nil { 144 | err := func() error { 145 | for i := 0; i < 2; i++ { 146 | fis, err := d.Readdir(1) 147 | if err != nil { 148 | if err == io.EOF { 149 | return nil 150 | } 151 | return err 152 | } 153 | if fis[0].Name() != ".git" || !fis[0].IsDir() { 154 | break 155 | } 156 | } 157 | return fmt.Errorf("directory %q already exists", ne.projDir) 158 | }() 159 | if err != nil { 160 | return err 161 | } 162 | cmd := exec.Command("git", "rev-parse", "HEAD") 163 | cmd.Dir = ne.projDir 164 | cmd.Stdout = ioutil.Discard 165 | cmd.Stderr = ioutil.Discard 166 | err = cmd.Run() 167 | if err == nil { 168 | return fmt.Errorf("non-empty repository exists on %q", ne.projDir) 169 | } 170 | } 171 | // create project directory and templating 172 | var ( 173 | hfs fs.FS 174 | baseDir = "" 175 | ) 176 | profDir := filepath.Join(ne.config.profilesBase(), ne.profile) 177 | if dir, err := os.Stat(profDir); err == nil && dir.IsDir() { 178 | hfs = os.DirFS(ne.config.profilesBase()) 179 | } else { 180 | hfs = embedFs 181 | baseDir = "testdata/assets/" 182 | } 183 | if err := gokoku.Scaffold(hfs, baseDir+ne.profile, ne.projDir, ne); err != nil { 184 | return fmt.Errorf("failed to scaffold while templating: %w", err) 185 | } 186 | 187 | log.Println("% go mod init && go mod tidy") 188 | c := &cmd{outStream: ne.outStream, errStream: ne.errStream, dir: ne.projDir} 189 | c.run("go", "mod", "init", ne.PackagePath) 190 | c.run("go", "mod", "tidy") 191 | 192 | log.Println("% git init && git add .") 193 | c.git("init") 194 | c.git("add", ".") 195 | 196 | if c.err != nil { 197 | return c.err 198 | } 199 | log.Printf("Finished to create %s in %s\n", ne.PackagePath, ne.projDir) 200 | _, err = fmt.Fprintln(ne.outStream, ne.projDir) 201 | return err 202 | // 4. need to create remote repository? 203 | } 204 | -------------------------------------------------------------------------------- /cmd_new_test.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path/filepath" 7 | "testing" 8 | ) 9 | 10 | func TestNew(t *testing.T) { 11 | if root, ok := os.LookupEnv(xdgConfigHomeEnv); ok { 12 | defer os.Setenv(xdgConfigHomeEnv, root) 13 | } else { 14 | defer os.Unsetenv(xdgConfigHomeEnv) 15 | } 16 | tmpd := t.TempDir() 17 | defer os.RemoveAll(tmpd) 18 | tmpXDGHome := filepath.Join(tmpd, ".config") 19 | os.Setenv(xdgConfigHomeEnv, tmpXDGHome) 20 | if err := os.MkdirAll(filepath.Join(tmpXDGHome, "godzil", "profiles", "test"), 0755); err != nil { 21 | t.Fatal(err) 22 | } 23 | if err := os.WriteFile(filepath.Join(tmpXDGHome, "godzil", "profiles", "test", "index.html"), 24 | []byte(`

It Works!

`), 0644); err != nil { 25 | t.Fatal(err) 26 | } 27 | 28 | projRoot := filepath.Join(tmpd, "projects") 29 | if err := os.WriteFile(filepath.Join(tmpXDGHome, "godzil", "config.yaml"), []byte(fmt.Sprintf(` 30 | user: Songmu 31 | root: %q 32 | `, projRoot)), 0644); err != nil { 33 | t.Fatal(err) 34 | } 35 | 36 | for _, p := range []string{"simple", "basic", "web", "test"} { 37 | if err := (&new{}).run([]string{"-profile", p, p}, os.Stderr, os.Stderr); err != nil { 38 | t.Error(err) 39 | } 40 | if p == "basic" { 41 | dotfile := filepath.Join(projRoot, "github.com", "Songmu", "basic", ".github", "workflows", "test.yaml") 42 | _, err := os.Stat(dotfile) 43 | if err != nil { 44 | t.Errorf("%q should be exists, but error: %s", dotfile, err) 45 | } 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /cmd_release.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "bytes" 5 | "errors" 6 | "flag" 7 | "fmt" 8 | "io" 9 | "os" 10 | "regexp" 11 | "strings" 12 | 13 | "github.com/Songmu/ghch" 14 | "github.com/Songmu/prompter" 15 | "github.com/x-motemen/gobump" 16 | "golang.org/x/mod/semver" 17 | ) 18 | 19 | type release struct { 20 | allowDirty, dryRun bool 21 | branch, remote, repoPath string 22 | path string // version.go location 23 | outStream, errStream io.Writer 24 | } 25 | 26 | func (re *release) run(argv []string, outStream, errStream io.Writer) error { 27 | re.outStream = outStream 28 | re.errStream = errStream 29 | fs := flag.NewFlagSet("godzil release", flag.ContinueOnError) 30 | fs.SetOutput(errStream) 31 | fs.StringVar(&re.branch, "branch", "", "releasing branch (default branch is used by default)") 32 | fs.StringVar(&re.remote, "remote", "", "remote repository name (Optional)") 33 | fs.BoolVar(&re.allowDirty, "allow-dirty", false, "allow dirty index") 34 | fs.BoolVar(&re.dryRun, "dry-run", false, "dry run") 35 | fs.StringVar(&re.repoPath, "C", "", "repository path") 36 | 37 | if err := fs.Parse(argv); err != nil { 38 | return err 39 | } 40 | if re.repoPath == "" { 41 | re.repoPath = "." 42 | } 43 | re.path = fs.Arg(0) 44 | return re.do() 45 | } 46 | 47 | var headBranchReg = regexp.MustCompile(`(?m)^\s*HEAD branch: (.*)$`) 48 | 49 | func defaultBranch(remote string) (string, error) { 50 | if remote == "" { 51 | var err error 52 | remote, err = detectRemote() 53 | if err != nil { 54 | return "", err 55 | } 56 | } 57 | // `git symbolic-ref refs/remotes/origin/HEAD` sometimes doesn't work 58 | // So use `git remote show origin` for detecting default branch 59 | show, _, err := git("remote", "show", remote) 60 | if err != nil { 61 | return "", fmt.Errorf("failed to detect defaut branch: %w", err) 62 | } 63 | m := headBranchReg.FindStringSubmatch(show) 64 | if len(m) < 2 { 65 | return "", fmt.Errorf("failed to detect default branch from remote: %s", remote) 66 | } 67 | return m[1], nil 68 | } 69 | 70 | func detectRemote() (string, error) { 71 | remotesStr, _, err := git("remote") 72 | if err != nil { 73 | return "", fmt.Errorf("failed to detect remote: %s", err) 74 | } 75 | remotes := strings.Fields(remotesStr) 76 | if len(remotes) == 1 { 77 | return remotes[0], nil 78 | } 79 | for _, r := range remotes { 80 | if r == "origin" { 81 | return r, nil 82 | } 83 | } 84 | return "", errors.New("failed to detect remote") 85 | } 86 | 87 | var gitReg = regexp.MustCompile(`^(?:git|https)(?:@|://)([^/:]+(?::[0-9]{1,5})?)[/:](.*)$`) 88 | 89 | func (re *release) do() error { 90 | if !re.allowDirty { 91 | out, _, err := git("status", "--porcelain") 92 | if err != nil { 93 | return fmt.Errorf("faild to release when git status: %w", err) 94 | } 95 | if strings.TrimSpace(out) != "" { 96 | return fmt.Errorf("can't release on dirty index (or you can use --allow-dirty)\n%s", out) 97 | } 98 | } 99 | if re.branch == "" { 100 | b, err := defaultBranch(re.remote) 101 | if err != nil { 102 | return err 103 | } 104 | re.branch = b 105 | } 106 | branch, _, err := git("symbolic-ref", "--short", "HEAD") 107 | if err != nil { 108 | return fmt.Errorf("faild to release when git symbolic-ref: %w", err) 109 | } 110 | if branch != re.branch { 111 | return fmt.Errorf("you are not on releasing branch %q, current branch is %q", 112 | re.branch, branch) 113 | } 114 | remote, _, err := git("config", fmt.Sprintf("branch.%s.remote", branch)) 115 | if err != nil { 116 | return fmt.Errorf("can't find a remote branch of %q: %w", branch, err) 117 | } 118 | apibase := os.Getenv("GITHUB_API") 119 | if apibase == "" { 120 | remoteURL, _, err := git("config", fmt.Sprintf("remote.%s.url", remote)) 121 | if err != nil { 122 | return fmt.Errorf("can't find a remote URL of %q: %w", remote, err) 123 | } 124 | m := gitReg.FindStringSubmatch(remoteURL) 125 | if len(m) < 2 { 126 | return fmt.Errorf("strange remote URL: %s", remoteURL) 127 | } 128 | if m[1] != "github.com" { 129 | apibase = fmt.Sprintf("https://%s/api/v3", m[1]) 130 | } 131 | } 132 | buf := &bytes.Buffer{} 133 | gb := &gobump.Gobump{ 134 | Show: true, 135 | Raw: true, 136 | Target: re.path, 137 | OutStream: buf, 138 | } 139 | if _, err := gb.Run(); err != nil { 140 | return fmt.Errorf("no version declaraion found: %w", err) 141 | } 142 | currVerStr := strings.TrimSpace(buf.String()) 143 | vers := strings.Split(currVerStr, "\n") 144 | currVer := vers[0] 145 | fmt.Fprintf(re.outStream, "current version: %s\n", currVer) 146 | nextVer := prompter.Prompt("input next version", "") 147 | if !semver.IsValid("v" + nextVer) { 148 | return fmt.Errorf("invalid version: %s", nextVer) 149 | } 150 | if semver.Compare("v"+nextVer, "v"+currVer) != 1 { 151 | return fmt.Errorf("next version %q isn't greather than current version %q", 152 | nextVer, 153 | currVer) 154 | } 155 | 156 | nextTag := fmt.Sprintf("v%s", nextVer) 157 | out, _, err := git("-C", re.repoPath, "ls-remote", remote, "refs/tags/"+nextTag) 158 | if err != nil { 159 | return fmt.Errorf("failed to check remote tags: %w", err) 160 | } 161 | if out != "" { 162 | return fmt.Errorf("tag %s already exists on remote %s", nextTag, remote) 163 | } 164 | 165 | gb2 := &gobump.Gobump{ 166 | Write: true, 167 | Target: re.path, 168 | Config: gobump.Config{ 169 | Exact: nextVer, 170 | }, 171 | } 172 | filesMap, err := gb2.Run() 173 | if err != nil { 174 | return err 175 | } 176 | var versions []string 177 | for f := range filesMap { 178 | versions = append(versions, f) 179 | } 180 | 181 | fmt.Fprintln(re.outStream, "following changes will be released") 182 | buf2 := &bytes.Buffer{} 183 | gh := &ghch.Ghch{ 184 | RepoPath: re.repoPath, 185 | NextVersion: nextTag, 186 | BaseURL: apibase, 187 | Format: "markdown", 188 | OutStream: io.MultiWriter(re.outStream, buf2), 189 | } 190 | if err := gh.Run(); err != nil { 191 | return err 192 | } 193 | gh.Write = true 194 | if err := gh.Run(); err != nil { 195 | return err 196 | } 197 | 198 | c := &cmd{outStream: re.outStream, errStream: re.errStream, dir: re.repoPath} 199 | c.git(append([]string{"add", gh.ChangelogMd}, versions...)...) 200 | if re.dryRun { 201 | return c.err 202 | } 203 | c.git("commit", "-m", 204 | fmt.Sprintf("Checking in changes prior to tagging of version v%s\n\n%s", 205 | nextVer, 206 | strings.TrimSpace(buf2.String()))) 207 | c.git("tag", nextTag) 208 | c.git("push", "--atomic", remote, branch, "tag", nextTag) 209 | return c.err 210 | } 211 | -------------------------------------------------------------------------------- /cmd_release_test.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import "testing" 4 | 5 | func TestGitReg(t *testing.T) { 6 | 7 | testCases := []struct { 8 | in, out string 9 | }{ 10 | {"git@github.com:Songmu/gauthor.git", "github.com"}, 11 | {"git://github.com/tokuhirom/Minilla.git", "github.com"}, 12 | {"https://github.com/motemen/gore.git", "github.com"}, 13 | {"https://ore.example.com:8877/motemen/gore.git", "ore.example.com:8877"}, 14 | {"git://git.example.com:8877/tokuhirom/Minilla.git", "git.example.com:8877"}, 15 | } 16 | for _, tc := range testCases { 17 | t.Run(tc.in, func(t *testing.T) { 18 | m := gitReg.FindStringSubmatch(tc.in) 19 | if len(m) < 2 { 20 | t.Errorf("something went wrong: not matched") 21 | } 22 | if m[1] != tc.out { 23 | t.Errorf("something went wrong") 24 | } 25 | }) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /cmd_show_version.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "bytes" 5 | "flag" 6 | "fmt" 7 | "io" 8 | "strings" 9 | 10 | "github.com/x-motemen/gobump" 11 | ) 12 | 13 | type showVersion struct { 14 | path string 15 | outStream, errStream io.Writer 16 | } 17 | 18 | func (sv *showVersion) run(argv []string, outStream, errStream io.Writer) error { 19 | sv.outStream = outStream 20 | sv.errStream = errStream 21 | fs := flag.NewFlagSet("godzil show-version", flag.ContinueOnError) 22 | fs.SetOutput(errStream) 23 | if err := fs.Parse(argv); err != nil { 24 | return err 25 | } 26 | sv.path = fs.Arg(0) 27 | buf := &bytes.Buffer{} 28 | gb := &gobump.Gobump{ 29 | Show: true, 30 | Raw: true, 31 | Target: sv.path, 32 | OutStream: buf, 33 | } 34 | if _, err := gb.Run(); err != nil { 35 | return fmt.Errorf("no version declaraion found: %w", err) 36 | } 37 | vers := strings.Split(strings.TrimSpace(buf.String()), "\n") 38 | _, err := fmt.Fprintln(sv.outStream, vers[0]) 39 | return err 40 | } 41 | -------------------------------------------------------------------------------- /cmdutil.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "bytes" 5 | "io" 6 | "os/exec" 7 | "strings" 8 | ) 9 | 10 | func git(args ...string) (string, string, error) { 11 | var ( 12 | outBuf bytes.Buffer 13 | errBuf bytes.Buffer 14 | ) 15 | cmd := exec.Command("git", args...) 16 | cmd.Stdout = &outBuf 17 | cmd.Stderr = &errBuf 18 | err := cmd.Run() 19 | return strings.TrimSpace(outBuf.String()), strings.TrimSpace(errBuf.String()), err 20 | } 21 | 22 | type cmd struct { 23 | outStream, errStream io.Writer 24 | dir string 25 | err error 26 | } 27 | 28 | func (c *cmd) git(args ...string) (string, string) { 29 | return c.run("git", args...) 30 | } 31 | 32 | func (c *cmd) run(prog string, args ...string) (string, string) { 33 | if c.err != nil { 34 | return "", "" 35 | } 36 | var ( 37 | outBuf bytes.Buffer 38 | errBuf bytes.Buffer 39 | ) 40 | cmd := exec.Command(prog, args...) 41 | cmd.Stdout = io.MultiWriter(&outBuf, c.outStream) 42 | cmd.Stderr = io.MultiWriter(&errBuf, c.errStream) 43 | if c.dir != "" { 44 | cmd.Dir = c.dir 45 | } 46 | c.err = cmd.Run() 47 | return outBuf.String(), errBuf.String() 48 | } 49 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | github_checks: false 3 | -------------------------------------------------------------------------------- /config.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "bytes" 5 | "os" 6 | "path/filepath" 7 | "strings" 8 | 9 | "github.com/Songmu/gitconfig" 10 | "github.com/Songmu/prompter" 11 | "github.com/goccy/go-yaml" 12 | "github.com/natefinch/atomic" 13 | ) 14 | 15 | func getGitConfig(k string) (string, error) { 16 | u, err := gitconfig.Get(k) 17 | if err != nil { 18 | if gitconfig.IsNotFound(err) { 19 | return "", nil 20 | } 21 | return "", err 22 | } 23 | return u, nil 24 | } 25 | 26 | type config struct { 27 | User string `yaml:"user,omitempty"` 28 | Host string `yaml:"host,omitempty"` 29 | Root string `yaml:"root,omitempty"` 30 | 31 | filepath string 32 | } 33 | 34 | func (c *config) host() string { 35 | if c.Host != "" { 36 | return c.Host 37 | } 38 | return "github.com" 39 | } 40 | 41 | func (c *config) user() (string, error) { 42 | if c.User != "" { 43 | return c.User, nil 44 | } 45 | c.User, _ = gitconfig.GitHubUser(c.host()) 46 | if c.User != "" { 47 | return c.User, nil 48 | } 49 | 50 | var githubID string 51 | for githubID == "" { 52 | githubID = prompter.Prompt("Enter your GitHub ID", "") 53 | } 54 | c.User = githubID 55 | if err := c.save(); err != nil { 56 | return "", err 57 | } 58 | return c.User, nil 59 | } 60 | 61 | func (c *config) root() (string, error) { 62 | if c.Root != "" { 63 | return expandTilde(c.Root) 64 | } 65 | r, err := getGitConfig("ghq.root") 66 | if err != nil { 67 | return "", err 68 | } 69 | return expandTilde(r) 70 | } 71 | 72 | func (c *config) profilesBase() string { 73 | return filepath.Join(filepath.Dir(c.filepath), "profiles") 74 | } 75 | 76 | func (c *config) save() error { 77 | if err := os.MkdirAll(filepath.Dir(c.filepath), 0755); err != nil { 78 | return err 79 | } 80 | b, _ := yaml.Marshal(c) 81 | return atomic.WriteFile(c.filepath, bytes.NewReader(b)) 82 | } 83 | 84 | func loadConfig() (*config, error) { 85 | root, err := configRoot() 86 | if err != nil { 87 | return nil, err 88 | } 89 | configPath := filepath.Join(root, "config.yaml") 90 | c := config{filepath: configPath} 91 | f, err := os.Open(c.filepath) 92 | if err != nil { 93 | if os.IsNotExist(err) { 94 | return &c, nil 95 | } 96 | return nil, err 97 | } 98 | defer f.Close() 99 | if err := yaml.NewDecoder(f).Decode(&c); err != nil { 100 | return nil, err 101 | } 102 | return &c, err 103 | } 104 | 105 | const xdgConfigHomeEnv = "XDG_CONFIG_HOME" 106 | 107 | func configRoot() (string, error) { 108 | root := os.Getenv(xdgConfigHomeEnv) 109 | if root == "" { 110 | root = "~/.config" 111 | } 112 | var err error 113 | root, err = expandTilde(root) 114 | if err != nil { 115 | return "", err 116 | } 117 | return filepath.Join(root, "godzil"), nil 118 | } 119 | 120 | func expandTilde(p string) (string, error) { 121 | if p == "" { 122 | return p, nil 123 | } 124 | if p[0] == '~' && (len(p) == 1 || p[1] == '/') { 125 | homeDir, err := os.UserHomeDir() 126 | if err != nil { 127 | return "", err 128 | } 129 | return strings.Replace(p, "~", homeDir, 1), nil 130 | } 131 | return p, nil 132 | } 133 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/Songmu/godzil 2 | 3 | go 1.23.0 4 | 5 | require ( 6 | github.com/Songmu/ghch v0.10.4 7 | github.com/Songmu/gitconfig v0.2.0 8 | github.com/Songmu/gocredits v0.3.1 9 | github.com/Songmu/gokoku v0.2.0 10 | github.com/Songmu/goxz v0.9.1 11 | github.com/Songmu/prompter v0.5.1 12 | github.com/goccy/go-yaml v1.12.0 13 | github.com/natefinch/atomic v1.0.1 14 | github.com/x-motemen/gobump v0.2.0 15 | golang.org/x/mod v0.20.0 16 | ) 17 | 18 | require ( 19 | github.com/Masterminds/semver/v3 v3.3.0 // indirect 20 | github.com/Songmu/gitsemvers v0.0.3 // indirect 21 | github.com/andybalholm/brotli v1.1.0 // indirect 22 | github.com/chzyer/readline v1.5.1 // indirect 23 | github.com/cli/go-gh v1.2.1 // indirect 24 | github.com/cli/safeexec v1.0.1 // indirect 25 | github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect 26 | github.com/fatih/color v1.17.0 // indirect 27 | github.com/golang/snappy v0.0.4 // indirect 28 | github.com/google/go-github/v41 v41.0.0 // indirect 29 | github.com/google/go-querystring v1.1.0 // indirect 30 | github.com/jessevdk/go-flags v1.6.1 // indirect 31 | github.com/klauspost/compress v1.17.9 // indirect 32 | github.com/klauspost/pgzip v1.2.6 // indirect 33 | github.com/manifoldco/promptui v0.9.0 // indirect 34 | github.com/mattn/go-colorable v0.1.13 // indirect 35 | github.com/mattn/go-isatty v0.0.20 // indirect 36 | github.com/mattn/go-tty v0.0.7 // indirect 37 | github.com/mholt/archiver/v3 v3.5.1 // indirect 38 | github.com/nwaples/rardecode v1.1.3 // indirect 39 | github.com/pierrec/lz4/v4 v4.1.21 // indirect 40 | github.com/pkg/errors v0.9.1 // indirect 41 | github.com/ulikunitz/xz v0.5.12 // indirect 42 | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect 43 | golang.org/x/crypto v0.31.0 // indirect 44 | golang.org/x/oauth2 v0.22.0 // indirect 45 | golang.org/x/sync v0.8.0 // indirect 46 | golang.org/x/sys v0.28.0 // indirect 47 | golang.org/x/term v0.27.0 // indirect 48 | golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect 49 | gopkg.in/yaml.v3 v3.0.1 // indirect 50 | ) 51 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= 2 | github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= 3 | github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= 4 | github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= 5 | github.com/Songmu/ghch v0.10.4 h1:pqFUyBOBn0yyNs2spO6iw2vAqgefhybG8WjjTvFXeX4= 6 | github.com/Songmu/ghch v0.10.4/go.mod h1:5AREET6uVmtz9YE1gesDWSMJP41JF4vrINdajUi21AU= 7 | github.com/Songmu/gitconfig v0.2.0 h1:pX2++u4KUq+K2k/ZCzGXLtkD3ceCqIdi0tDyb+IbSyo= 8 | github.com/Songmu/gitconfig v0.2.0/go.mod h1:cB5bYJer+pl7W8g6RHFwL/0X6aJROVrYuHlvc7PT+hE= 9 | github.com/Songmu/gitmock v0.0.2 h1:KF5GTll60LxGskZbt58QDd29y/GYLgdxqvkvnSU6RlY= 10 | github.com/Songmu/gitmock v0.0.2/go.mod h1:/ILc8CtPydh2MJ8toKCOB1opd2HCaU/6RWJjg7lmSvs= 11 | github.com/Songmu/gitsemvers v0.0.3 h1:pyNgp4+G0Y65zP+4ANybm/fFUyThaMl3SrUzmh50ogk= 12 | github.com/Songmu/gitsemvers v0.0.3/go.mod h1:WdKXiC8zjNK1N7CoZ9cM9vrw/Bg6/W4AwGrfTkkUPdM= 13 | github.com/Songmu/gocredits v0.3.1 h1:ggwVwnlQet7OAPvES8y1uoJ4ysJFEEc77c82HpIIW7g= 14 | github.com/Songmu/gocredits v0.3.1/go.mod h1:GGUAT/3BmUVgvfHxm07agU6Zz+ZSeGg5gvqN6N/CxH0= 15 | github.com/Songmu/gokoku v0.2.0 h1:iXlnOM6eIilZhzeMFdYKv0CRqwUQSksJbO8+IXbWyL4= 16 | github.com/Songmu/gokoku v0.2.0/go.mod h1:vIvx8b5tARx6h613EL6lgCWMXrlZ/Yt5lUDGP1mMOGg= 17 | github.com/Songmu/goxz v0.9.1 h1:dVb4N7r2jD1XcQ7o7jMfmMfwhLZQEM7OaO6iHDBLiXc= 18 | github.com/Songmu/goxz v0.9.1/go.mod h1:C7rRvbuMJC2o6TdSEjqDlup7oX31Fj8/J2Y5d+6Shss= 19 | github.com/Songmu/prompter v0.5.1 h1:IAsttKsOZWSDw7bV1mtGn9TAmLFAjXbp9I/eYmUUogo= 20 | github.com/Songmu/prompter v0.5.1/go.mod h1:CS3jEPD6h9IaLaG6afrl1orTgII9+uDWuw95dr6xHSw= 21 | github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= 22 | github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= 23 | github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= 24 | github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 25 | github.com/chzyer/logex v1.1.11-0.20170329064859-445be9e134b2/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 26 | github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= 27 | github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= 28 | github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= 29 | github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= 30 | github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= 31 | github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= 32 | github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= 33 | github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= 34 | github.com/cli/browser v1.1.0/go.mod h1:HKMQAt9t12kov91Mn7RfZxyJQQgWgyS/3SZswlZ5iTI= 35 | github.com/cli/go-gh v0.1.0/go.mod h1:eTGWl99EMZ+3Iau5C6dHyGAJRRia65MtdBtuhWc+84o= 36 | github.com/cli/go-gh v1.2.1 h1:xFrjejSsgPiwXFP6VYynKWwxLQcNJy3Twbu82ZDlR/o= 37 | github.com/cli/go-gh v1.2.1/go.mod h1:Jxk8X+TCO4Ui/GarwY9tByWm/8zp4jJktzVZNlTW5VM= 38 | github.com/cli/safeexec v1.0.0/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= 39 | github.com/cli/safeexec v1.0.1 h1:e/C79PbXF4yYTN/wauC4tviMxEV13BwljGj0N9j+N00= 40 | github.com/cli/safeexec v1.0.1/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= 41 | github.com/cli/shurcooL-graphql v0.0.1/go.mod h1:U7gCSuMZP/Qy7kbqkk5PrqXEeDgtfG5K+W+u8weorps= 42 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 43 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 44 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 45 | github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 h1:iFaUwBSo5Svw6L7HYpRu/0lE3e0BaElwnNO1qkNQxBY= 46 | github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5/go.mod h1:qssHWj60/X5sZFNxpG4HBPDHVqxNm4DfnCKgrbZOT+s= 47 | github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= 48 | github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= 49 | github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= 50 | github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= 51 | github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= 52 | github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= 53 | github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= 54 | github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= 55 | github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= 56 | github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= 57 | github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= 58 | github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= 59 | github.com/goccy/go-yaml v1.9.5/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= 60 | github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM= 61 | github.com/goccy/go-yaml v1.12.0/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= 62 | github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 63 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 64 | github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 65 | github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= 66 | github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 67 | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 68 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 69 | github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 70 | github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= 71 | github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 72 | github.com/google/go-github/v41 v41.0.0 h1:HseJrM2JFf2vfiZJ8anY2hqBjdfY1Vlj/K27ueww4gg= 73 | github.com/google/go-github/v41 v41.0.0/go.mod h1:XgmCA5H323A9rtgExdTcnDkcqp6S30AVACCBDOonIxg= 74 | github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= 75 | github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= 76 | github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= 77 | github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= 78 | github.com/henvic/httpretty v0.0.6/go.mod h1:X38wLjWXHkXT7r2+uK8LjCMne9rsuNaBLJ+5cU2/Pmo= 79 | github.com/jessevdk/go-flags v1.6.1 h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4= 80 | github.com/jessevdk/go-flags v1.6.1/go.mod h1:Mk8T1hIAWpOiJiHa9rJASDK2UGWji0EuPGBnNLMooyc= 81 | github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= 82 | github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= 83 | github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= 84 | github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= 85 | github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= 86 | github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= 87 | github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= 88 | github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= 89 | github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= 90 | github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= 91 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 92 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 93 | github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= 94 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 95 | github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= 96 | github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= 97 | github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= 98 | github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= 99 | github.com/manifoldco/promptui v0.7.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= 100 | github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= 101 | github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= 102 | github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= 103 | github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= 104 | github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= 105 | github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= 106 | github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= 107 | github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= 108 | github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= 109 | github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= 110 | github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= 111 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 112 | github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= 113 | github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= 114 | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= 115 | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= 116 | github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= 117 | github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= 118 | github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= 119 | github.com/mattn/go-tty v0.0.7 h1:KJ486B6qI8+wBO7kQxYgmmEFDaFEE96JMBQ7h400N8Q= 120 | github.com/mattn/go-tty v0.0.7/go.mod h1:f2i5ZOvXBU/tCABmLmOfzLz9azMo5wdAaElRNnJKr+k= 121 | github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo= 122 | github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= 123 | github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A= 124 | github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= 125 | github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= 126 | github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= 127 | github.com/nwaples/rardecode v1.1.3 h1:cWCaZwfM5H7nAD6PyEdcVnczzV8i/JtotnyW/dD9lEc= 128 | github.com/nwaples/rardecode v1.1.3/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= 129 | github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= 130 | github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= 131 | github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= 132 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 133 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 134 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 135 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 136 | github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= 137 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 138 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 139 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 140 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 141 | github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI= 142 | github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= 143 | github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= 144 | github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= 145 | github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= 146 | github.com/x-motemen/gobump v0.2.0 h1:gLsNbywrLFBESr6UuqFdgmMZtcFHnlYPRpWBhBycLvI= 147 | github.com/x-motemen/gobump v0.2.0/go.mod h1:TZGIS1Toemb0zGYgCQfgzJtXq4sqD+WvuA+2/WQPyMk= 148 | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= 149 | github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= 150 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 151 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 152 | golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 153 | golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= 154 | golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= 155 | golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= 156 | golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 157 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 158 | golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 159 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 160 | golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 161 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 162 | golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= 163 | golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 164 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 165 | golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= 166 | golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 167 | golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 168 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 169 | golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 170 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 171 | golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 172 | golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 173 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 174 | golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 175 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 176 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 177 | golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 178 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 179 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 180 | golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 181 | golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 182 | golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 183 | golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 184 | golang.org/x/sys v0.0.0-20220818161305-2296e01440c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 185 | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 186 | golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= 187 | golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 188 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 189 | golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= 190 | golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= 191 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 192 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 193 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 194 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 195 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 196 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 197 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 198 | golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= 199 | golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 h1:LLhsEBxRTBLuKlQxFBYUOU8xyFgXv6cOTp2HASDlsDk= 200 | golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= 201 | google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 202 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 203 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= 204 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 205 | gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= 206 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 207 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 208 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 209 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 210 | -------------------------------------------------------------------------------- /godzil.go: -------------------------------------------------------------------------------- 1 | package godzil 2 | 3 | import ( 4 | "context" 5 | "errors" 6 | "flag" 7 | "fmt" 8 | "io" 9 | "log" 10 | ) 11 | 12 | // Run the godzil 13 | func Run(ctx context.Context, argv []string, outStream, errStream io.Writer) error { 14 | log.SetOutput(errStream) 15 | log.SetPrefix("[godzil] ") 16 | fs := flag.NewFlagSet( 17 | fmt.Sprintf("godzil (v%s rev:%s)", version, revision), flag.ContinueOnError) 18 | fs.SetOutput(errStream) 19 | ver := fs.Bool("version", false, "display version") 20 | if err := fs.Parse(argv); err != nil { 21 | return err 22 | } 23 | if *ver { 24 | return printVersion(outStream) 25 | } 26 | 27 | argv = fs.Args() 28 | if len(argv) < 1 { 29 | return errors.New("no subcommand specified") 30 | } 31 | rnr, ok := dispatch[argv[0]] 32 | if !ok { 33 | return fmt.Errorf("unknown subcommand: %s", argv[0]) 34 | } 35 | return rnr.run(argv[1:], outStream, errStream) 36 | } 37 | 38 | func printVersion(out io.Writer) error { 39 | _, err := fmt.Fprintf(out, "godzil v%s (rev:%s)\n", version, revision) 40 | return err 41 | } 42 | 43 | var dispatch = map[string]runner{ 44 | "release": &release{}, 45 | "new": &new{}, 46 | "show-version": &showVersion{}, 47 | "changelog": &changelog{}, 48 | "crossbuild": &crossbuild{}, 49 | "credits": &credits{}, 50 | } 51 | 52 | type runner interface { 53 | run([]string, io.Writer, io.Writer) error 54 | } 55 | -------------------------------------------------------------------------------- /testdata/assets/_common/.github/workflows/reviewdog.yaml: -------------------------------------------------------------------------------- 1 | name: reviewdog 2 | on: [pull_request] 3 | jobs: 4 | staticcheck: 5 | name: staticcheck 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v4 9 | with: 10 | persist-credentials: false 11 | - uses: reviewdog/action-staticcheck@v1 12 | with: 13 | reporter: github-pr-review 14 | fail_on_error: true 15 | misspell: 16 | name: misspell 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v4 20 | with: 21 | persist-credentials: false 22 | - name: misspell 23 | uses: reviewdog/action-misspell@v1 24 | with: 25 | reporter: github-pr-review 26 | level: warning 27 | locale: "US" 28 | actionlint: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - uses: actions/checkout@v4 32 | with: 33 | persist-credentials: false 34 | - uses: reviewdog/action-actionlint@v1 35 | with: 36 | reporter: github-pr-review 37 | -------------------------------------------------------------------------------- /testdata/assets/_common/.github/workflows/tagpr.yaml: -------------------------------------------------------------------------------- 1 | name: tagpr 2 | on: 3 | push: 4 | branches: 5 | - "main" 6 | jobs: 7 | tagpr: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: setup go 11 | uses: actions/setup-go@v5 12 | with: 13 | go-version: stable 14 | - name: checkout 15 | uses: actions/checkout@v4 16 | - name: tagpr 17 | id: tagpr 18 | uses: Songmu/tagpr@v1 19 | env: 20 | GITHUB_TOKEN: {{ "${{ secrets.GITHUB_TOKEN }}" }} 21 | - uses: ./.github/actions/release 22 | with: 23 | tag: {{ "${{ steps.tagpr.outputs.tag }}" }} 24 | token: {{ "${{ secrets.GITHUB_TOKEN }}" }} 25 | if: "steps.tagpr.outputs.tag != ''" 26 | -------------------------------------------------------------------------------- /testdata/assets/_common/.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: 3 | push: 4 | branches: 5 | - "**" 6 | jobs: 7 | test: 8 | runs-on: {{ "${{ matrix.os }}" }} 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | os: 13 | - ubuntu-latest 14 | - macOS-latest 15 | - windows-latest 16 | steps: 17 | - name: Set git to use LF 18 | run: | 19 | git config --global core.autocrlf false 20 | git config --global core.eol lf 21 | if: "matrix.os == 'windows-latest'" 22 | - name: checkout 23 | uses: actions/checkout@v4 24 | - name: setup go 25 | uses: actions/setup-go@v5 26 | with: 27 | go-version: stable 28 | - name: test 29 | run: go test -race -coverprofile coverage.out -covermode atomic ./... 30 | - name: Upload coverage to Codecov 31 | uses: codecov/codecov-action@v4 32 | -------------------------------------------------------------------------------- /testdata/assets/_common/.tagpr: -------------------------------------------------------------------------------- 1 | [tagpr] 2 | vPrefix = true 3 | releaseBranch = main 4 | versionFile = version.go 5 | release = draft 6 | -------------------------------------------------------------------------------- /testdata/assets/_common/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) {{.Year}} {{.Author}} 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /testdata/assets/_common/codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | github_checks: false 3 | -------------------------------------------------------------------------------- /testdata/assets/_common/version.go: -------------------------------------------------------------------------------- 1 | package {{.Package}} 2 | 3 | const version = "0.0.0" 4 | 5 | var revision = "HEAD" 6 | -------------------------------------------------------------------------------- /testdata/assets/basic/.gitattributes: -------------------------------------------------------------------------------- 1 | install.sh linguist-generated 2 | -------------------------------------------------------------------------------- /testdata/assets/basic/.github/actions/release/action.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | description: release {{.Package}} 3 | inputs: 4 | tag: 5 | description: tag name to be released 6 | default: '' 7 | token: 8 | description: GitHub token 9 | required: true 10 | runs: 11 | using: composite 12 | steps: 13 | - name: setup go 14 | uses: actions/setup-go@v5 15 | with: 16 | go-version: stable 17 | - name: release 18 | run: | 19 | make crossbuild upload 20 | shell: bash 21 | env: 22 | GITHUB_TOKEN: {{ "${{ inputs.token }}" }} 23 | -------------------------------------------------------------------------------- /testdata/assets/basic/.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | on: 3 | push: 4 | tags: 5 | - "v[0-9]+.[0-9]+.[0-9]+" 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: checkout 11 | uses: actions/checkout@v4 12 | - uses: ./.github/actions/release 13 | with: 14 | token: {{ "${{ secrets.GITHUB_TOKEN }}" }} 15 | -------------------------------------------------------------------------------- /testdata/assets/basic/.github/workflows/reviewdog.yaml: -------------------------------------------------------------------------------- 1 | name: reviewdog 2 | on: [pull_request] 3 | jobs: 4 | staticcheck: 5 | name: staticcheck 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v4 9 | with: 10 | persist-credentials: false 11 | - uses: reviewdog/action-staticcheck@v1 12 | with: 13 | reporter: github-pr-review 14 | fail_on_error: true 15 | misspell: 16 | name: misspell 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v4 20 | with: 21 | persist-credentials: false 22 | - name: misspell 23 | uses: reviewdog/action-misspell@v1 24 | with: 25 | reporter: github-pr-review 26 | level: warning 27 | locale: "US" 28 | actionlint: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - uses: actions/checkout@v4 32 | with: 33 | persist-credentials: false 34 | - uses: reviewdog/action-actionlint@v1 35 | with: 36 | reporter: github-pr-review 37 | -------------------------------------------------------------------------------- /testdata/assets/basic/.github/workflows/tagpr.yaml: -------------------------------------------------------------------------------- 1 | name: tagpr 2 | on: 3 | push: 4 | branches: 5 | - "main" 6 | jobs: 7 | tagpr: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: setup go 11 | uses: actions/setup-go@v5 12 | with: 13 | go-version: stable 14 | - name: checkout 15 | uses: actions/checkout@v4 16 | - name: tagpr 17 | id: tagpr 18 | uses: Songmu/tagpr@v1 19 | env: 20 | GITHUB_TOKEN: {{ "${{ secrets.GITHUB_TOKEN }}" }} 21 | - uses: ./.github/actions/release 22 | with: 23 | tag: {{ "${{ steps.tagpr.outputs.tag }}" }} 24 | token: {{ "${{ secrets.GITHUB_TOKEN }}" }} 25 | if: "steps.tagpr.outputs.tag != ''" 26 | -------------------------------------------------------------------------------- /testdata/assets/basic/.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: 3 | push: 4 | branches: 5 | - "**" 6 | jobs: 7 | test: 8 | runs-on: {{ "${{ matrix.os }}" }} 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | os: 13 | - ubuntu-latest 14 | - macOS-latest 15 | - windows-latest 16 | steps: 17 | - name: Set git to use LF 18 | run: | 19 | git config --global core.autocrlf false 20 | git config --global core.eol lf 21 | if: "matrix.os == 'windows-latest'" 22 | - name: checkout 23 | uses: actions/checkout@v4 24 | - name: setup go 25 | uses: actions/setup-go@v5 26 | with: 27 | go-version: stable 28 | - name: test 29 | run: go test -race -coverprofile coverage.out -covermode atomic ./... 30 | - name: Upload coverage to Codecov 31 | uses: codecov/codecov-action@v4 32 | -------------------------------------------------------------------------------- /testdata/assets/basic/.tagpr: -------------------------------------------------------------------------------- 1 | [tagpr] 2 | vPrefix = true 3 | releaseBranch = main 4 | versionFile = version.go 5 | release = draft 6 | -------------------------------------------------------------------------------- /testdata/assets/basic/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) {{.Year}} {{.Author}} 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /testdata/assets/basic/Makefile: -------------------------------------------------------------------------------- 1 | VERSION = $(shell godzil show-version) 2 | CURRENT_REVISION = $(shell git rev-parse --short HEAD) 3 | BUILD_LDFLAGS = "-s -w -X {{.PackagePath}}.revision=$(CURRENT_REVISION)" 4 | u := $(if $(update),-u) 5 | 6 | .PHONY: deps 7 | deps: 8 | go get ${u} 9 | go mod tidy 10 | 11 | .PHONY: devel-deps 12 | devel-deps: 13 | go install github.com/Songmu/godzil/cmd/godzil@latest 14 | go install github.com/tcnksm/ghr@latest 15 | 16 | .PHONY: test 17 | test: 18 | go test 19 | 20 | .PHONY: build 21 | build: 22 | go build -ldflags=$(BUILD_LDFLAGS) ./cmd/{{.Package}} 23 | 24 | .PHONY: install 25 | install: 26 | go install -ldflags=$(BUILD_LDFLAGS) ./cmd/{{.Package}} 27 | 28 | .PHONY: release 29 | release: devel-deps 30 | godzil release 31 | 32 | CREDITS: go.sum deps devel-deps 33 | godzil credits -w 34 | 35 | DIST_DIR = dist/v$(VERSION) 36 | .PHONY: crossbuild 37 | crossbuild: CREDITS 38 | rm -rf $(DIST_DIR) 39 | godzil crossbuild -pv=v$(VERSION) -build-ldflags=$(BUILD_LDFLAGS) \ 40 | -os=linux,darwin -d=$(DIST_DIR) ./cmd/* 41 | cd $(DIST_DIR) && shasum -a 256 $$(find * -type f -maxdepth 0) > SHA256SUMS 42 | 43 | .PHONY: upload 44 | upload: 45 | ghr -body="$$(godzil changelog --latest -F markdown)" v$(VERSION) dist/v$(VERSION) 46 | -------------------------------------------------------------------------------- /testdata/assets/basic/README.md: -------------------------------------------------------------------------------- 1 | {{.Package}} 2 | ======= 3 | 4 | [![Test Status](https://github.com/{{.Owner}}/{{.Package}}/workflows/test/badge.svg?branch={{.Branch}})][actions] 5 | [![Coverage Status](https://codecov.io/gh/{{.Owner}}/{{.Package}}/branch/{{.Branch}}/graph/badge.svg)][codecov] 6 | [![MIT License](https://img.shields.io/github/license/{{.Owner}}/{{.Package}})][license] 7 | [![PkgGoDev](https://pkg.go.dev/badge/{{.PackagePath}})][PkgGoDev] 8 | 9 | [actions]: https://github.com/{{.Owner}}/{{.Package}}/actions?workflow=test 10 | [codecov]: https://codecov.io/gh/{{.Owner}}/{{.Package}} 11 | [license]: https://{{.GitHubHost}}/{{.Owner}}/{{.Package}}/blob/{{.Branch}}/LICENSE 12 | [PkgGoDev]: https://pkg.go.dev/{{.PackagePath}} 13 | 14 | {{.Package}} short description 15 | 16 | ## Synopsis 17 | 18 | ```go 19 | // simple usage here 20 | ``` 21 | 22 | ## Description 23 | 24 | ## Installation 25 | 26 | ```console 27 | # Install the latest version. (Install it into ./bin/ by default). 28 | % curl -sfL https://raw.githubusercontent.com/{{.Owner}}/{{.Package}}/main/install.sh | sh -s 29 | 30 | # Specify installation directory ($(go env GOPATH)/bin/) and version. 31 | % curl -sfL https://raw.githubusercontent.com/{{.Owner}}/{{.Package}}/main/install.sh | sh -s -- -b $(go env GOPATH)/bin [vX.Y.Z] 32 | 33 | # In alpine linux (as it does not come with curl by default) 34 | % wget -O - -q https://raw.githubusercontent.com/{{.Owner}}/{{.Package}}/main/install.sh | sh -s [vX.Y.Z] 35 | 36 | # go install 37 | % go install github.com/{{.Owner}}/{{.Package}}/cmd/{{.Package}}@latest 38 | ``` 39 | 40 | ## Author 41 | 42 | [{{.Author}}](https://{{.GitHubHost}}/{{.Author}}) 43 | -------------------------------------------------------------------------------- /testdata/assets/basic/cmd/{{.Package}}/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "flag" 6 | "log" 7 | "os" 8 | 9 | "{{.PackagePath}}" 10 | ) 11 | 12 | func main() { 13 | log.SetFlags(0) 14 | err := {{.Package}}.Run(context.Background(), os.Args[1:], os.Stdout, os.Stderr) 15 | if err != nil && err != flag.ErrHelp { 16 | log.Println(err) 17 | exitCode := 1 18 | if ecoder, ok := err.(interface{ ExitCode() int }); ok { 19 | exitCode = ecoder.ExitCode() 20 | } 21 | os.Exit(exitCode) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /testdata/assets/basic/codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | github_checks: false 3 | -------------------------------------------------------------------------------- /testdata/assets/basic/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | # Code generated by godzil. DO NOT EDIT. 4 | # It is based on the one generated by godownloader. 5 | 6 | usage() { 7 | this=$1 8 | cat </dev/null 126 | } 127 | echoerr() { 128 | echo "$@" 1>&2 129 | } 130 | log_prefix() { 131 | echo "$0" 132 | } 133 | _logp=6 134 | log_set_priority() { 135 | _logp="$1" 136 | } 137 | log_priority() { 138 | if test -z "$1"; then 139 | echo "$_logp" 140 | return 141 | fi 142 | [ "$1" -le "$_logp" ] 143 | } 144 | log_tag() { 145 | case $1 in 146 | 0) echo "emerg" ;; 147 | 1) echo "alert" ;; 148 | 2) echo "crit" ;; 149 | 3) echo "err" ;; 150 | 4) echo "warning" ;; 151 | 5) echo "notice" ;; 152 | 6) echo "info" ;; 153 | 7) echo "debug" ;; 154 | *) echo "$1" ;; 155 | esac 156 | } 157 | log_debug() { 158 | log_priority 7 || return 0 159 | echoerr "$(log_prefix)" "$(log_tag 7)" "$@" 160 | } 161 | log_info() { 162 | log_priority 6 || return 0 163 | echoerr "$(log_prefix)" "$(log_tag 6)" "$@" 164 | } 165 | log_err() { 166 | log_priority 3 || return 0 167 | echoerr "$(log_prefix)" "$(log_tag 3)" "$@" 168 | } 169 | log_crit() { 170 | log_priority 2 || return 0 171 | echoerr "$(log_prefix)" "$(log_tag 2)" "$@" 172 | } 173 | uname_os() { 174 | os=$(uname -s | tr '[:upper:]' '[:lower:]') 175 | case "$os" in 176 | cygwin_nt*) os="windows" ;; 177 | mingw*) os="windows" ;; 178 | msys_nt*) os="windows" ;; 179 | esac 180 | echo "$os" 181 | } 182 | uname_arch() { 183 | arch=$(uname -m) 184 | case $arch in 185 | x86_64) arch="amd64" ;; 186 | x86) arch="386" ;; 187 | i686) arch="386" ;; 188 | i386) arch="386" ;; 189 | aarch64) arch="arm64" ;; 190 | armv5*) arch="armv5" ;; 191 | armv6*) arch="armv6" ;; 192 | armv7*) arch="armv7" ;; 193 | esac 194 | echo ${arch} 195 | } 196 | uname_os_check() { 197 | os=$(uname_os) 198 | case "$os" in 199 | darwin) return 0 ;; 200 | dragonfly) return 0 ;; 201 | freebsd) return 0 ;; 202 | linux) return 0 ;; 203 | android) return 0 ;; 204 | nacl) return 0 ;; 205 | netbsd) return 0 ;; 206 | openbsd) return 0 ;; 207 | plan9) return 0 ;; 208 | solaris) return 0 ;; 209 | windows) return 0 ;; 210 | esac 211 | log_crit "uname_os_check '$(uname -s)' got converted to '$os' which is not a GOOS value. Please file bug at https://github.com/client9/shlib" 212 | return 1 213 | } 214 | uname_arch_check() { 215 | arch=$(uname_arch) 216 | case "$arch" in 217 | 386) return 0 ;; 218 | amd64) return 0 ;; 219 | arm64) return 0 ;; 220 | armv5) return 0 ;; 221 | armv6) return 0 ;; 222 | armv7) return 0 ;; 223 | ppc64) return 0 ;; 224 | ppc64le) return 0 ;; 225 | mips) return 0 ;; 226 | mipsle) return 0 ;; 227 | mips64) return 0 ;; 228 | mips64le) return 0 ;; 229 | s390x) return 0 ;; 230 | amd64p32) return 0 ;; 231 | esac 232 | log_crit "uname_arch_check '$(uname -m)' got converted to '$arch' which is not a GOARCH value. Please file bug report at https://github.com/client9/shlib" 233 | return 1 234 | } 235 | untar() { 236 | tarball=$1 237 | case "${tarball}" in 238 | *.tar.gz | *.tgz) tar --no-same-owner -xzf "${tarball}" ;; 239 | *.tar) tar --no-same-owner -xf "${tarball}" ;; 240 | *.zip) unzip "${tarball}" ;; 241 | *) 242 | log_err "untar unknown archive format for ${tarball}" 243 | return 1 244 | ;; 245 | esac 246 | } 247 | http_download_curl() { 248 | local_file=$1 249 | source_url=$2 250 | header=$3 251 | if [ -z "$header" ]; then 252 | code=$(curl -w '%{http_code}' -sL -o "$local_file" "$source_url") 253 | else 254 | code=$(curl -w '%{http_code}' -sL -H "$header" -o "$local_file" "$source_url") 255 | fi 256 | if [ "$code" != "200" ]; then 257 | log_debug "http_download_curl received HTTP status $code" 258 | return 1 259 | fi 260 | return 0 261 | } 262 | http_download_wget() { 263 | local_file=$1 264 | source_url=$2 265 | header=$3 266 | if [ -z "$header" ]; then 267 | wget -q -O "$local_file" "$source_url" 268 | else 269 | wget -q --header "$header" -O "$local_file" "$source_url" 270 | fi 271 | } 272 | http_download() { 273 | log_debug "http_download $2" 274 | if is_command curl; then 275 | http_download_curl "$@" 276 | return 277 | elif is_command wget; then 278 | http_download_wget "$@" 279 | return 280 | fi 281 | log_crit "http_download unable to find wget or curl" 282 | return 1 283 | } 284 | http_copy() { 285 | tmp=$(mktemp) 286 | http_download "${tmp}" "$1" "$2" || return 1 287 | body=$(cat "$tmp") 288 | rm -f "${tmp}" 289 | echo "$body" 290 | } 291 | github_release() { 292 | owner_repo=$1 293 | version=$2 294 | test -z "$version" && version="latest" 295 | giturl="https://github.com/${owner_repo}/releases/${version}" 296 | json=$(http_copy "$giturl" "Accept:application/json") 297 | test -z "$json" && return 1 298 | version=$(echo "$json" | tr -s '\n' ' ' | sed 's/.*"tag_name":"//' | sed 's/".*//') 299 | test -z "$version" && return 1 300 | echo "$version" 301 | } 302 | hash_sha256() { 303 | TARGET=${1:-/dev/stdin} 304 | if is_command gsha256sum; then 305 | hash=$(gsha256sum "$TARGET") || return 1 306 | echo "$hash" | cut -d ' ' -f 1 307 | elif is_command sha256sum; then 308 | hash=$(sha256sum "$TARGET") || return 1 309 | echo "$hash" | cut -d ' ' -f 1 310 | elif is_command shasum; then 311 | hash=$(shasum -a 256 "$TARGET" 2>/dev/null) || return 1 312 | echo "$hash" | cut -d ' ' -f 1 313 | elif is_command openssl; then 314 | hash=$(openssl -dst openssl dgst -sha256 "$TARGET") || return 1 315 | echo "$hash" | cut -d ' ' -f a 316 | else 317 | log_crit "hash_sha256 unable to find command to compute sha-256 hash" 318 | return 1 319 | fi 320 | } 321 | hash_sha256_verify() { 322 | TARGET=$1 323 | checksums=$2 324 | if [ -z "$checksums" ]; then 325 | log_err "hash_sha256_verify checksum file not specified in arg2" 326 | return 1 327 | fi 328 | BASENAME=${TARGET##*/} 329 | want=$(grep "${BASENAME}" "${checksums}" 2>/dev/null | tr '\t' ' ' | cut -d ' ' -f 1) 330 | if [ -z "$want" ]; then 331 | log_err "hash_sha256_verify unable to find checksum for '${TARGET}' in '${checksums}'" 332 | return 1 333 | fi 334 | got=$(hash_sha256 "$TARGET") 335 | if [ "$want" != "$got" ]; then 336 | log_err "hash_sha256_verify checksum for '$TARGET' did not verify ${want} vs $got" 337 | return 1 338 | fi 339 | } 340 | cat /dev/null <