diff --git a/.goreleaser.yaml b/.goreleaser.yaml
new file mode 100644
index 0000000..f33df43
--- /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/kageviewer/compare/{{ .PreviousTag }}...{{ .Tag }})
diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml
new file mode 100644
index 0000000..b09e907
--- /dev/null
+++ b/.woodpecker/build.yaml
@@ -0,0 +1,31 @@
+matrix:
+ platform:
+ - linux/amd64
+ goversion:
+ - 1.24
+
+labels:
+ platform: ${platform}
+
+steps:
+ build:
+ when:
+ event: [push]
+ image: golang:${goversion}
+ commands:
+ - apt-get update
+ - apt-get install -y libasound2-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev
+ - go get
+ - go build
+
+ linter:
+ when:
+ event: [push]
+ image: golang:${goversion}
+ commands:
+ - apt-get update
+ - apt-get install -y libasound2-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev
+ - 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]
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 00de504..be9ba7d 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,10 @@
# kageviewer - Viewer for shaders written in Kage, similar to glslviewer
-
+
-[](https://github.com/tlinden/kageviewer/blob/master/LICENSE)
-[](https://goreportcard.com/report/github.com/tlinden/kageviewer)
+[](https://codeberg.org/scip/kageviewer/raw/branch/main/LICENSE)
+[](https://goreportcard.com/report/codeberg.org/scip/kageviewer)
+[](https://ci.codeberg.org/repos/15617)
This little tool can be used to test shaders written in
[Kage](https://ebitengine.org/en/documents/shader.html), a shader meta
@@ -15,7 +16,7 @@ will be printed to STDOUT. The same applies for images.
## Screenshot
-
+
## Installation
@@ -25,7 +26,7 @@ pre built binaries are provided.
### Installation with go
```shell
-go install github.com/tlinden/kageviewer@latest
+go install codeberg.org/scip/kageviewer@latest
```
### Installation from source
@@ -128,7 +129,7 @@ Possible parameters equal the long command line options.
# Report bugs
-[Please open an issue](https://github.com/TLINDEN/kageviewer/issues). Thanks!
+[Please open an issue](https://codeberg.org/scip/kageviewer/issues). Thanks!
# License
diff --git a/config.go b/config.go
index f3f2391..427c98f 100644
--- a/config.go
+++ b/config.go
@@ -18,6 +18,7 @@ along with this program. If not, see .
package main
import (
+ "errors"
"fmt"
"os"
"path/filepath"
@@ -52,8 +53,7 @@ Options:
--map-slider Map Slider uniform to
--map-mouse Map Mouse uniform to
-d --debug Show debugging output
--v --version Show program version
-`
+-v --version Show program version`
)
type Config struct {
@@ -81,7 +81,7 @@ func InitConfig() (*Config, error) {
// setup custom usage
flagset := flag.NewFlagSet("config", flag.ContinueOnError)
flagset.Usage = func() {
- fmt.Println(Usage)
+ _, _ = fmt.Println(Usage)
os.Exit(0)
}
@@ -165,13 +165,13 @@ func SanitiyCheck(conf *Config) error {
geo := strings.Split(conf.Geo, "x")
if len(geo) != 2 {
- return fmt.Errorf(geoerr)
+ return errors.New(geoerr)
}
w, errw := strconv.Atoi(geo[0])
h, errh := strconv.Atoi(geo[1])
if errw != nil || errh != nil {
- return fmt.Errorf(geoerr)
+ return errors.New(geoerr)
}
conf.Width = w
@@ -181,13 +181,13 @@ func SanitiyCheck(conf *Config) error {
pos := strings.Split(conf.Posision, "x")
if len(geo) != 2 {
- return fmt.Errorf(poserr)
+ return errors.New(poserr)
}
x, errx := strconv.Atoi(pos[0])
y, erry := strconv.Atoi(pos[1])
if errx != nil || erry != nil {
- return fmt.Errorf(poserr)
+ return errors.New(poserr)
}
conf.X = x
@@ -195,11 +195,3 @@ func SanitiyCheck(conf *Config) error {
return nil
}
-
-func fileExists(filename string) bool {
- info, err := os.Stat(filename)
- if os.IsNotExist(err) {
- return false
- }
- return !info.IsDir()
-}
diff --git a/game.go b/game.go
index a8023d8..bd48608 100644
--- a/game.go
+++ b/game.go
@@ -46,7 +46,9 @@ func LoadImage(name string) (*ebiten.Image, error) {
if err != nil {
return nil, err
}
- defer fd.Close()
+ defer func() {
+ _ = fd.Close()
+ }()
img, _, err := image.Decode(fd)
if err != nil {
@@ -89,7 +91,7 @@ func (game *Game) Init() error {
game.Shader = shader
// user can customize TPS
- ebiten.SetMaxTPS(game.Conf.TPS)
+ ebiten.SetTPS(game.Conf.TPS)
// setup shader bounds, by default we use window size
game.ShaderBounds = image.Rect(0, 0, game.Conf.Width, game.Conf.Height)
diff --git a/go.mod b/go.mod
index ffa4560..755e160 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/tlinden/kageviewer
+module codeberg.org/scip/kageviewer
go 1.22
diff --git a/main.go b/main.go
index 5cfe6ec..a86b4cb 100644
--- a/main.go
+++ b/main.go
@@ -64,7 +64,7 @@ func main() {
ebiten.SetWindowSize(game.Conf.Width, game.Conf.Height)
ebiten.SetWindowTitle("Kage shader viewer")
- ebiten.SetWindowResizable(true)
+ ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
if err := ebiten.RunGame(game); err != nil {
log.Fatal(err)