diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index c560d07..0000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,87 +0,0 @@ -name: build-release -on: - push: - tags: - - "v*.*.*" - -jobs: - release: - name: Build Release Assets - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v5 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: 1.23.5 - - - name: Build the executables - run: ./mkrel.sh descratch ${{ github.ref_name}} - - - name: List the executables - run: ls -l ./releases - - - name: Upload the binaries - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.ref_name }} - file: ./releases/* - file_glob: true - - - name: Build Changelog - id: github_release - uses: mikepenz/release-changelog-builder-action@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - mode: "PR" - configurationJson: | - { - "template": "#{{CHANGELOG}}\n\n**Full Changelog**: #{{RELEASE_DIFF}}", - "pr_template": "- #{{TITLE}} (##{{NUMBER}}) by #{{AUTHOR}}\n#{{BODY}}", - "empty_template": "- no changes", - "categories": [ - { - "title": "## New Features", - "labels": ["add", "feature"] - }, - { - "title": "## Bug Fixes", - "labels": ["fix", "bug", "revert"] - }, - { - "title": "## Documentation Enhancements", - "labels": ["doc"] - }, - { - "title": "## Refactoring Efforts", - "labels": ["refactor"] - }, - { - "title": "## Miscellaneus Changes", - "labels": [] - } - ], - "ignore_labels": [ - "duplicate", "good first issue", "help wanted", "invalid", "question", "wontfix" - ], - "label_extractor": [ - { - "pattern": "(.) (.+)", - "target": "$1" - }, - { - "pattern": "(.) (.+)", - "target": "$1", - "on_property": "title" - } - ] - } - - - name: Create Release - uses: softprops/action-gh-release@v2 - with: - body: ${{steps.github_release.outputs.changelog}} diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..e753cf6 --- /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/sway-descratch/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 d40ce4f..bc4bfc4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ +[![status-badge](https://ci.codeberg.org/api/badges/15678/status.svg)](https://ci.codeberg.org/repos/15678) +[![Go Report Card](https://goreportcard.com/badge/codeberg.org/scip/swayipc)](https://goreportcard.com/report/codeberg.org/scip/sway-descratch) +[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://codeberg.org/scip/sway-descratch/raw/branch/main/LICENSE) + + # sway-descratch This is a more practical example for [swayipc module -usage](https://github.com/TLINDEN/swayipc). With sway you can move +usage](https://codeberg.org/scip/swayipc). With sway you can move windows to a "scratchpad", i.e. like iconify it. There may be an official way to get back such windows, but I didn't find a good one. There's the "scratchpad show" command, but it doesn't allow you @@ -37,11 +42,11 @@ 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/sway-descratch/issues. +https://codeberg.org/scip/sway-descratch/issues. ## See also -- [swayipc golang sway binding](https://github.com/tlinden/swayipc) +- [swayipc golang sway binding](https://codeberg.org/scip/swayipc) - [sway-ipc(7) manpage](https://www.mankier.com/7/sway-ipc) - [swaywm](https://github.com/swaywm/sway/) - [swayfx](https://github.com/WillPower3309/swayfx) @@ -56,7 +61,7 @@ T.v.Dein ## Project homepage -https://github.com/tlinden/sway-descratch +https://codeberg.org/scip/sway-descratch ## Copyright and License diff --git a/go.mod b/go.mod index 2e279f0..629c621 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,8 @@ module sway-descratch go 1.23.5 + +require ( + codeberg.org/scip/swayipc/v2 v2.0.0-test1 + github.com/alecthomas/repr v0.5.2 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..249c286 --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +codeberg.org/scip/swayipc/v2 v2.0.0-test1 h1:F4tOtE0gvxoh4mWQbV2+rG55cVJsCtkD5YME/6qxjqw= +codeberg.org/scip/swayipc/v2 v2.0.0-test1/go.mod h1:F+rmNQ+NjLDr8fU7HW/jSjiUIXeYfQ1cSyBiGByhoWI= +github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= +github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= diff --git a/main.go b/main.go index 58b2783..3151429 100644 --- a/main.go +++ b/main.go @@ -24,8 +24,8 @@ import ( "os" "strconv" + "codeberg.org/scip/swayipc/v2" "github.com/alecthomas/repr" - "github.com/tlinden/swayipc" ) func main() { @@ -36,7 +36,11 @@ func main() { if err != nil { log.Fatal(err) } - defer ipc.Close() + defer func() { + if err := ipc.Close(); err != nil { + log.Fatal(err) + } + }() // first, retrieve the whole sway root node root, err := ipc.GetTree() @@ -51,7 +55,7 @@ func main() { // called with an arg, consider it to be a container id id, err := strconv.Atoi(os.Args[1]) if err != nil { - log.Fatalf("failed to convert arg %s to integer: %w", os.Args[1], err) + log.Fatalf("failed to convert arg %s to integer: %s", os.Args[1], err) } // switch to it