diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..fedf616 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,65 @@ +# vim: set ts=2 sw=2 tw=0 fo=cnqoj + +version: 2 + +before: + hooks: + - go mod tidy + +gitea_urls: + api: https://codeberg.org/api/v1 + download: https://codeberg.org + +builds: + - env: + - CGO_ENABLED=0 + goos: + - linux + - freebsd + +archives: + - formats: [tar.gz] + # this name template makes the OS and Arch compatible with the results of `uname`. + name_template: >- + {{ .ProjectName }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + {{- if .Arm }}v{{ .Arm }}{{ end }}_{{ .Tag }} + # use zip for windows archives + format_overrides: + - goos: windows + formats: [zip] + - goos: linux + formats: [tar.gz,binary] + files: + - src: "*.md" + strip_parent: true + - src: Makefile.dist + dst: Makefile + wrap_in_directory: true + +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:" + groups: + - title: Improved + regexp: '^.*?(feat|add|new)(\([[:word:]]+\))??!?:.+$' + order: 0 + - title: Fixed + regexp: '^.*?(bug|fix)(\([[:word:]]+\))??!?:.+$' + order: 1 + - title: Changed + order: 999 + +release: + header: "# Release Notes" + footer: >- + + --- + + Full Changelog: [{{ .PreviousTag }}...{{ .Tag }}](https://codeberg.org/scip/gowipe/compare/{{ .PreviousTag }}...{{ .Tag }}) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..e20cc6f --- /dev/null +++ b/.woodpecker/build.yaml @@ -0,0 +1,36 @@ +matrix: + platform: + - linux/amd64 + goversion: + - 1.24 + +labels: + platform: ${platform} + +steps: + build: + when: + event: [push] + image: golang:${goversion} + commands: + - go get + - go build + + linter: + when: + event: [push] + image: golang:${goversion} + commands: + - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.5.0 + - golangci-lint --version + - golangci-lint run ./... + depends_on: [build] + + test: + when: + event: [push] + image: golang:${goversion} + commands: + - go get + - go test -v -cover + depends_on: [build,linter] diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml new file mode 100644 index 0000000..916c008 --- /dev/null +++ b/.woodpecker/release.yaml @@ -0,0 +1,15 @@ +# build release + +labels: + platform: linux/amd64 + +steps: + goreleaser: + image: goreleaser/goreleaser + when: + event: [tag] + environment: + GITEA_TOKEN: + from_secret: DEPLOY_TOKEN + commands: + - goreleaser release --clean --verbose diff --git a/Makefile.dist b/Makefile.dist new file mode 100644 index 0000000..55d2f38 --- /dev/null +++ b/Makefile.dist @@ -0,0 +1,18 @@ +# -*-make-*- + +.PHONY: install all + +tool = rpn +PREFIX = /usr/local +UID = root +GID = 0 + +all: + @echo "Type 'sudo make install' to install the tool." + @echo "To change prefix, type 'sudo make install PREFIX=/opt'" + +install: + install -d -o $(UID) -g $(GID) $(PREFIX)/bin + install -d -o $(UID) -g $(GID) $(PREFIX)/share/doc + install -o $(UID) -g $(GID) -m 555 $(tool) $(PREFIX)/sbin/ + install -o $(UID) -g $(GID) -m 444 *.md $(PREFIX)/share/doc/ diff --git a/README.md b/README.md index e3058de..4d9aedd 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ ## gowipe - securely delete files and directories (not for SSD) -[![Actions](https://github.com/tlinden/gowipe/actions/workflows/ci.yaml/badge.svg)](https://github.com/tlinden/gowipe/actions) -[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://github.com/tlinden/gowipe/blob/master/LICENSE) -[![Go Report Card](https://goreportcard.com/badge/github.com/tlinden/gowipe)](https://goreportcard.com/report/github.com/tlinden/gowipe) -[![GitHub release](https://img.shields.io/github/v/release/tlinden/gowipe?color=%2300a719)](https://github.com/TLINDEN/gowipe/releases/latest) +[![status-badge](https://ci.codeberg.org/api/badges/15612/status.svg)](https://ci.codeberg.org/repos/15612) +[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://codeberg.org/scip/gowipe/raw/branch/main/LICENSE) +[![Go Report Card](https://goreportcard.com/badge/codeberg.org/scip/gowipe)](https://goreportcard.com/report/codeberg.org/scip/gowipe) ## Description @@ -79,7 +78,7 @@ that's the best way for me to forget to do something. In order to report a bug, unexpected behavior, feature requests or to submit a patch, please open an issue on github: -https://github.com/TLINDEN/gowipe/issues. +https://codeberg.org/scip/gowipe/issues. ## Copyright and license @@ -91,4 +90,4 @@ T.v.Dein ## Project homepage -https://github.com/TLINDEN/gowipe +https://codeberg.org/scip/gowipe diff --git a/crypto.go b/crypto.go index ea65d92..bbf05fc 100644 --- a/crypto.go +++ b/crypto.go @@ -22,6 +22,7 @@ import ( "errors" "fmt" "io" + "log" "math/big" mathrand "math/rand" "os" @@ -141,7 +142,11 @@ func Encrypt(c *Conf, filename string) error { if err != nil { return err } - defer outfile.Close() + defer func() { + if err := outfile.Close(); err != nil { + log.Fatal(err) + } + }() key, err := GetRandomKey() if err != nil { diff --git a/mkrel.sh b/mkrel.sh index f0f3d2c..b312912 100755 --- a/mkrel.sh +++ b/mkrel.sh @@ -43,7 +43,7 @@ for D in $DIST; do tardir="${tool}-${os}-${arch}-${version}" tarfile="releases/${tool}-${os}-${arch}-${version}.tar.gz" set -x - GOOS=${os} GOARCH=${arch} go build -o ${binfile} -ldflags "-X 'github.com/tlinden/tablizer/cfg.VERSION=${version}'" + GOOS=${os} GOARCH=${arch} go build -o ${binfile} -ldflags "-X 'codeberg.org/scip/tablizer/cfg.VERSION=${version}'" mkdir -p ${tardir} cp ${binfile} README.md LICENSE ${tardir}/ echo 'tool = gowipe