diff --git a/.codeberg/assets/darkmode.png b/.codeberg/assets/darkmode.png new file mode 100644 index 0000000..b6141a6 Binary files /dev/null and b/.codeberg/assets/darkmode.png differ diff --git a/.codeberg/assets/help.png b/.codeberg/assets/help.png new file mode 100644 index 0000000..79a6c08 Binary files /dev/null and b/.codeberg/assets/help.png differ diff --git a/.codeberg/assets/light.png b/.codeberg/assets/light.png new file mode 100644 index 0000000..dad8b8a Binary files /dev/null and b/.codeberg/assets/light.png differ diff --git a/.codeberg/assets/margin.png b/.codeberg/assets/margin.png new file mode 100644 index 0000000..dec7ff0 Binary files /dev/null and b/.codeberg/assets/margin.png differ diff --git a/.github/assets/darkmode.png b/.github/assets/darkmode.png deleted file mode 100644 index 9bfee35..0000000 Binary files a/.github/assets/darkmode.png and /dev/null differ diff --git a/.github/assets/help.png b/.github/assets/help.png deleted file mode 100644 index cac0e29..0000000 Binary files a/.github/assets/help.png and /dev/null differ diff --git a/.github/assets/light.png b/.github/assets/light.png deleted file mode 100644 index 6defcf2..0000000 Binary files a/.github/assets/light.png and /dev/null differ diff --git a/.github/assets/margin.png b/.github/assets/margin.png deleted file mode 100644 index 92f89a8..0000000 Binary files a/.github/assets/margin.png and /dev/null differ diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index a7e46ee..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,54 +0,0 @@ -name: build-and-test -on: [push] -jobs: - build: - strategy: - matrix: - version: [1.24.9] - os: [ubuntu-latest, windows-latest, macos-latest] - name: Build - runs-on: ${{ matrix.os }} - steps: - - name: Set up Go ${{ matrix.os }} - uses: actions/setup-go@v6 - with: - go-version: '${{ matrix.version }}' - id: go - - - name: checkout - uses: actions/checkout@v5 - - - name: build - run: go build - - test: - strategy: - matrix: - version: [1.24.9] - os: [ubuntu-latest] - name: Test - runs-on: ${{ matrix.os }} - steps: - - name: Set up Go ${{ matrix.os }} - uses: actions/setup-go@v6 - with: - go-version: '${{ matrix.version }}' - id: go - - - name: checkout - uses: actions/checkout@v5 - - - name: test - run: go test -cover ./... - - - golangci: - name: Lintercheck - runs-on: ubuntu-latest - steps: - - uses: actions/setup-go@v6 - with: - go-version: 1.24 - - uses: actions/checkout@v5 - - name: golangci-lint - uses: golangci/golangci-lint-action@v8 diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..0e35092 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,69 @@ +# 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 + - windows + - darwin + - 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: "docs/*" + 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/epuppy/compare/{{ .PreviousTag }}...{{ .Tag }}) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..d370fc9 --- /dev/null +++ b/.woodpecker/build.yaml @@ -0,0 +1,27 @@ +matrix: + platform: + - linux/amd64 + goversion: + - 1.24 + +labels: + platform: ${platform} + +steps: + build: + when: + event: [push] + image: golang:${goversion} + commands: + - go get + - go build + - go test + + 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 ./... 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..0c58a63 --- /dev/null +++ b/Makefile.dist @@ -0,0 +1,20 @@ +# -*-make-*- + +.PHONY: install all + +tool = epuppy +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)/man/man1 + 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 $(tool).1 $(PREFIX)/man/man1/ + install -o $(UID) -g $(GID) -m 444 *.md Documentation.txt $(PREFIX)/share/doc/ diff --git a/README.md b/README.md index ed1166b..61f826b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[![Actions](https://github.com/tlinden/epuppy/actions/workflows/ci.yaml/badge.svg)](https://github.com/tlinden/epuppy/actions) -[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://github.com/tlinden/epuppy/blob/master/LICENSE) -[![Go Report Card](https://goreportcard.com/badge/github.com/tlinden/epuppy)](https://goreportcard.com/report/github.com/tlinden/epuppy) +[![status-badge](https://ci.codeberg.org/api/badges/15473/status.svg?branch=woodpecker)](https://ci.codeberg.org/repos/15473) +[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://codeberg.org/scip/epuppy/raw/branch/master/LICENSE) +[![Go Report Card](https://goreportcard.com/badge/codeberg.org/scip/epuppy)](https://goreportcard.com/report/codeberg.org/scip/epuppy) # epuppy - terminal epub reader @@ -21,16 +21,16 @@ long run. ## Screenshots - Viewing an ebook in dark mode -![Screenshot](https://github.com/TLINDEN/epuppy/blob/main/.github/assets/darkmode.png) +![Screenshot](https://codeberg.org/scip/epuppy/raw/branch/main/.codeberg/assets/darkmode.png) - Viewing an ebook in light mode -![Screenshot](https://github.com/TLINDEN/epuppy/blob/main/.github/assets/light.png) +![Screenshot](https://codeberg.org/scip/epuppy/raw/branch/main/.codeberg/assets/light.png) - You can interactively adjust text width -![Screenshot](https://github.com/TLINDEN/epuppy/blob/main/.github/assets/margin.png) +![Screenshot](https://codeberg.org/scip/epuppy/raw/branch/main/.codeberg/assets/margin.png) - Showing the help -![Screenshot](https://github.com/TLINDEN/epuppy/blob/main/.github/assets/help.png) +![Screenshot](https://codeberg.org/scip/epuppy/raw/branch/main/.codeberg/assets/help.png) ## Usage @@ -101,10 +101,10 @@ your platform from the releases page and you're good to go. You can use [stew](https://github.com/marwanhawari/stew) to install epuppy: ```default -stew install tlinden/epuppy +stew install https://codeberg.org/scip/epuppy ``` -Or go to the [latest release page](https://github.com/TLINDEN/epuppy/releases/latest) +Or go to the [latest release page](https://codeberg.org/scip/epuppy/releases/latest) and look for your OS and platform. There are two options to install the binary: Directly download the binary for your platform, @@ -144,7 +144,7 @@ sudo make install # Report bugs -[Please open an issue](https://github.com/TLINDEN/epuppy/issues). Thanks! +[Please open an issue](https://codeberg.org/scip/epuppy/issues). Thanks! # License diff --git a/cmd/prepare.go b/cmd/prepare.go index a0c877a..34f0383 100644 --- a/cmd/prepare.go +++ b/cmd/prepare.go @@ -22,8 +22,8 @@ import ( "path/filepath" "strings" + "codeberg.org/scip/epuppy/pkg/epub" "github.com/alecthomas/repr" - "github.com/tlinden/epuppy/pkg/epub" ) func Prepare(conf *Config) (*Ebook, error) { diff --git a/go.mod b/go.mod index 0a650df..28daa19 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/tlinden/epuppy +module codeberg.org/scip/epuppy go 1.24.0 diff --git a/main.go b/main.go index 7e9f9a3..5709ee8 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,7 @@ package main import ( "os" - "github.com/tlinden/epuppy/cmd" + "codeberg.org/scip/epuppy/cmd" ) func main() { diff --git a/mkrel.sh b/mkrel.sh deleted file mode 100755 index 16aaa29..0000000 --- a/mkrel.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# Copyright © 2025 Thomas von Dein - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# get list with: go tool dist list -DIST="darwin/amd64 -freebsd/amd64 -linux/amd64 -netbsd/amd64 -openbsd/amd64 -windows/amd64 -freebsd/arm64 -linux/arm64 -netbsd/arm64 -openbsd/arm64 -windows/arm64" - -tool="$1" -version="$2" - -if test -z "$version"; then - echo "Usage: $0 " - exit 1 -fi - -rm -rf releases -mkdir -p releases - - -for D in $DIST; do - os=${D/\/*/} - arch=${D/*\//} - binfile="releases/${tool}-${os}-${arch}-${version}" - - if test "$os" = "windows"; then - binfile="${binfile}.exe" - fi - - tardir="${tool}-${os}-${arch}-${version}" - tarfile="releases/${tool}-${os}-${arch}-${version}.tar.gz" - set -x - GOOS=${os} GOARCH=${arch} go build -tags osusergo,netgo -ldflags "-extldflags=-static" -o ${binfile} - mkdir -p ${tardir} - cp ${binfile} README.md LICENSE ${tardir}/ - echo 'tool = epuppy -PREFIX = /usr/local -UID = root -GID = 0 - -install: - install -d -o $(UID) -g $(GID) $(PREFIX)/bin - install -d -o $(UID) -g $(GID) $(PREFIX)/man/man1 - install -o $(UID) -g $(GID) -m 555 $(tool) $(PREFIX)/sbin/ - install -o $(UID) -g $(GID) -m 444 $(tool).1 $(PREFIX)/man/man1/' > ${tardir}/Makefile - tar cpzf ${tarfile} ${tardir} - sha256sum ${binfile} | cut -d' ' -f1 > ${binfile}.sha256 - sha256sum ${tarfile} | cut -d' ' -f1 > ${tarfile}.sha256 - rm -rf ${tardir} - set +x -done -