Build for Windows
This commit is contained in:
parent
613348d37e
commit
19d2a46457
4 changed files with 98 additions and 78 deletions
|
@ -4,7 +4,7 @@ before:
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
builds:
|
builds:
|
||||||
-
|
-
|
||||||
id: ntfy_amd64
|
id: ntfy_linux_amd64
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=1 # required for go-sqlite3
|
- CGO_ENABLED=1 # required for go-sqlite3
|
||||||
|
@ -17,7 +17,7 @@ builds:
|
||||||
post:
|
post:
|
||||||
- upx "{{ .Path }}" # apt install upx
|
- upx "{{ .Path }}" # apt install upx
|
||||||
-
|
-
|
||||||
id: ntfy_armv6
|
id: ntfy_linux_armv6
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=1 # required for go-sqlite3
|
- CGO_ENABLED=1 # required for go-sqlite3
|
||||||
|
@ -28,10 +28,9 @@ builds:
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm]
|
goarch: [arm]
|
||||||
goarm: [6]
|
goarm: [6]
|
||||||
# No "upx", since it causes random core dumps, see
|
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
||||||
# https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_armv7
|
id: ntfy_linux_armv7
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=1 # required for go-sqlite3
|
- CGO_ENABLED=1 # required for go-sqlite3
|
||||||
|
@ -42,10 +41,9 @@ builds:
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm]
|
goarch: [arm]
|
||||||
goarm: [7]
|
goarm: [7]
|
||||||
# No "upx", since it causes random core dumps, see
|
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
||||||
# https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_arm64
|
id: ntfy_linux_arm64
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=1 # required for go-sqlite3
|
- CGO_ENABLED=1 # required for go-sqlite3
|
||||||
|
@ -55,14 +53,12 @@ builds:
|
||||||
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm64]
|
goarch: [arm64]
|
||||||
# No "upx", since it causes random core dumps, see
|
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
||||||
# https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_windows_amd64
|
id: ntfy_windows_amd64
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3
|
- CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3
|
||||||
tags: []
|
|
||||||
ldflags:
|
ldflags:
|
||||||
- "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
- "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
||||||
goos: [windows]
|
goos: [windows]
|
||||||
|
@ -107,6 +103,12 @@ nfpms:
|
||||||
postremove: "scripts/postrm.sh"
|
postremove: "scripts/postrm.sh"
|
||||||
archives:
|
archives:
|
||||||
-
|
-
|
||||||
|
id: ntfy_linux
|
||||||
|
builds:
|
||||||
|
- ntfy_linux_amd64
|
||||||
|
- ntfy_linux_armv6
|
||||||
|
- ntfy_linux_armv7
|
||||||
|
- ntfy_linux_arm64
|
||||||
wrap_in_directory: true
|
wrap_in_directory: true
|
||||||
files:
|
files:
|
||||||
- LICENSE
|
- LICENSE
|
||||||
|
@ -116,7 +118,18 @@ archives:
|
||||||
- client/client.yml
|
- client/client.yml
|
||||||
- client/ntfy-client.service
|
- client/ntfy-client.service
|
||||||
replacements:
|
replacements:
|
||||||
386: i386
|
amd64: x86_64
|
||||||
|
-
|
||||||
|
id: ntfy_windows
|
||||||
|
builds:
|
||||||
|
- ntfy_windows_amd64
|
||||||
|
format: zip
|
||||||
|
wrap_in_directory: true
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.md
|
||||||
|
- client/client.yml
|
||||||
|
replacements:
|
||||||
amd64: x86_64
|
amd64: x86_64
|
||||||
checksum:
|
checksum:
|
||||||
name_template: 'checksums.txt'
|
name_template: 'checksums.txt'
|
||||||
|
|
84
Makefile
84
Makefile
|
@ -5,8 +5,8 @@ VERSION := $(shell git describe --tag)
|
||||||
help:
|
help:
|
||||||
@echo "Typical commands (more see below):"
|
@echo "Typical commands (more see below):"
|
||||||
@echo " make build - Build web app, documentation and server/client (sloowwww)"
|
@echo " make build - Build web app, documentation and server/client (sloowwww)"
|
||||||
@echo " make server-amd64 - Build server/client binary (amd64, no web app or docs)"
|
@echo " make cli-linux-amd64 - Build server/client binary (amd64, no web app or docs)"
|
||||||
@echo " make install-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64)"
|
@echo " make install-linux-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64)"
|
||||||
@echo " make web - Build the web app"
|
@echo " make web - Build the web app"
|
||||||
@echo " make docs - Build the documentation"
|
@echo " make docs - Build the documentation"
|
||||||
@echo " make check - Run all tests, vetting/formatting checks and linters"
|
@echo " make check - Run all tests, vetting/formatting checks and linters"
|
||||||
|
@ -16,11 +16,12 @@ help:
|
||||||
@echo " make clean - Clean build/dist folders"
|
@echo " make clean - Clean build/dist folders"
|
||||||
@echo
|
@echo
|
||||||
@echo "Build server & client (not release version):"
|
@echo "Build server & client (not release version):"
|
||||||
@echo " make server - Build server & client (all architectures)"
|
@echo " make cli - Build server & client (all architectures)"
|
||||||
@echo " make server-amd64 - Build server & client (amd64 only)"
|
@echo " make cli-linux-amd64 - Build server & client (Linux, amd64 only)"
|
||||||
@echo " make server-armv6 - Build server & client (armv6 only)"
|
@echo " make cli-linux-armv6 - Build server & client (Linux, armv6 only)"
|
||||||
@echo " make server-armv7 - Build server & client (armv7 only)"
|
@echo " make cli-linux-armv7 - Build server & client (Linux, armv7 only)"
|
||||||
@echo " make server-arm64 - Build server & client (arm64 only)"
|
@echo " make cli-linux-arm64 - Build server & client (Linux, arm64 only)"
|
||||||
|
@echo " make cli-windows-amd64 - Build client (Windows, amd64 only)"
|
||||||
@echo
|
@echo
|
||||||
@echo "Build web app:"
|
@echo "Build web app:"
|
||||||
@echo " make web - Build the web app"
|
@echo " make web - Build the web app"
|
||||||
|
@ -51,14 +52,14 @@ help:
|
||||||
@echo " make release-snapshot - Create a test release"
|
@echo " make release-snapshot - Create a test release"
|
||||||
@echo
|
@echo
|
||||||
@echo "Install locally (requires sudo):"
|
@echo "Install locally (requires sudo):"
|
||||||
@echo " make install-amd64 - Copy amd64 binary from dist/ to /usr/bin/ntfy"
|
@echo " make install-linux-amd64 - Copy amd64 binary from dist/ to /usr/bin/ntfy"
|
||||||
@echo " make install-armv6 - Copy armv6 binary from dist/ to /usr/bin/ntfy"
|
@echo " make install-linux-armv6 - Copy armv6 binary from dist/ to /usr/bin/ntfy"
|
||||||
@echo " make install-armv7 - Copy armv7 binary from dist/ to /usr/bin/ntfy"
|
@echo " make install-linux-armv7 - Copy armv7 binary from dist/ to /usr/bin/ntfy"
|
||||||
@echo " make install-arm64 - Copy arm64 binary from dist/ to /usr/bin/ntfy"
|
@echo " make install-linux-arm64 - Copy arm64 binary from dist/ to /usr/bin/ntfy"
|
||||||
@echo " make install-deb-amd64 - Install .deb from dist/ (amd64 only)"
|
@echo " make install-linux-deb-amd64 - Install .deb from dist/ (amd64 only)"
|
||||||
@echo " make install-deb-armv6 - Install .deb from dist/ (armv6 only)"
|
@echo " make install-linux-deb-armv6 - Install .deb from dist/ (armv6 only)"
|
||||||
@echo " make install-deb-armv7 - Install .deb from dist/ (armv7 only)"
|
@echo " make install-linux-deb-armv7 - Install .deb from dist/ (armv7 only)"
|
||||||
@echo " make install-deb-arm64 - Install .deb from dist/ (arm64 only)"
|
@echo " make install-linux-deb-arm64 - Install .deb from dist/ (arm64 only)"
|
||||||
|
|
||||||
|
|
||||||
# Building everything
|
# Building everything
|
||||||
|
@ -101,36 +102,39 @@ web-build:
|
||||||
|
|
||||||
# Main server/client build
|
# Main server/client build
|
||||||
|
|
||||||
server: server-deps
|
cli: cli-deps
|
||||||
goreleaser build --snapshot --rm-dist --debug
|
goreleaser build --snapshot --rm-dist --debug
|
||||||
|
|
||||||
server-amd64: server-deps-static-sites
|
cli-linux-amd64: cli-deps-static-sites
|
||||||
goreleaser build --snapshot --rm-dist --debug --id ntfy_amd64
|
goreleaser build --snapshot --rm-dist --debug --id ntfy_linux_amd64
|
||||||
|
|
||||||
server-armv6: server-deps-static-sites server-deps-gcc-armv6-armv7
|
cli-linux-armv6: cli-deps-static-sites cli-deps-gcc-armv6-armv7
|
||||||
goreleaser build --snapshot --rm-dist --debug --id ntfy_armv6
|
goreleaser build --snapshot --rm-dist --debug --id ntfy_linux_armv6
|
||||||
|
|
||||||
server-armv7: server-deps-static-sites server-deps-gcc-armv6-armv7
|
cli-linux-armv7: cli-deps-static-sites cli-deps-gcc-armv6-armv7
|
||||||
goreleaser build --snapshot --rm-dist --debug --id ntfy_armv7
|
goreleaser build --snapshot --rm-dist --debug --id ntfy_linux_armv7
|
||||||
|
|
||||||
server-arm64: server-deps-static-sites server-deps-gcc-arm64
|
cli-linux-arm64: cli-deps-static-sites cli-deps-gcc-arm64
|
||||||
goreleaser build --snapshot --rm-dist --debug --id ntfy_arm64
|
goreleaser build --snapshot --rm-dist --debug --id ntfy_linux_arm64
|
||||||
|
|
||||||
server-deps: server-deps-static-sites server-deps-all server-deps-gcc
|
cli-windows-amd64: cli-deps-static-sites
|
||||||
|
goreleaser build --snapshot --rm-dist --debug --id ntfy_windows_amd64
|
||||||
|
|
||||||
server-deps-gcc: server-deps-gcc-armv6-armv7 server-deps-gcc-arm64
|
cli-deps: cli-deps-static-sites cli-deps-all cli-deps-gcc
|
||||||
|
|
||||||
server-deps-static-sites:
|
cli-deps-gcc: cli-deps-gcc-armv6-armv7 cli-deps-gcc-arm64
|
||||||
|
|
||||||
|
cli-deps-static-sites:
|
||||||
mkdir -p server/docs server/site
|
mkdir -p server/docs server/site
|
||||||
touch server/docs/index.html server/site/app.html
|
touch server/docs/index.html server/site/app.html
|
||||||
|
|
||||||
server-deps-all:
|
cli-deps-all:
|
||||||
which upx || { echo "ERROR: upx not installed. On Ubuntu, run: apt install upx"; exit 1; }
|
which upx || { echo "ERROR: upx not installed. On Ubuntu, run: apt install upx"; exit 1; }
|
||||||
|
|
||||||
server-deps-gcc-armv6-armv7:
|
cli-deps-gcc-armv6-armv7:
|
||||||
which arm-linux-gnueabi-gcc || { echo "ERROR: ARMv6/ARMv7 cross compiler not installed. On Ubuntu, run: apt install gcc-arm-linux-gnueabi"; exit 1; }
|
which arm-linux-gnueabi-gcc || { echo "ERROR: ARMv6/ARMv7 cross compiler not installed. On Ubuntu, run: apt install gcc-arm-linux-gnueabi"; exit 1; }
|
||||||
|
|
||||||
server-deps-gcc-arm64:
|
cli-deps-gcc-arm64:
|
||||||
which aarch64-linux-gnu-gcc || { echo "ERROR: ARM64 cross compiler not installed. On Ubuntu, run: apt install gcc-aarch64-linux-gnu"; exit 1; }
|
which aarch64-linux-gnu-gcc || { echo "ERROR: ARM64 cross compiler not installed. On Ubuntu, run: apt install gcc-aarch64-linux-gnu"; exit 1; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,10 +188,10 @@ staticcheck: .PHONY
|
||||||
|
|
||||||
# Releasing targets
|
# Releasing targets
|
||||||
|
|
||||||
release: clean server-deps release-check-tags docs web check
|
release: clean cli-deps release-check-tags docs web check
|
||||||
goreleaser release --rm-dist --debug
|
goreleaser release --rm-dist --debug
|
||||||
|
|
||||||
release-snapshot: clean server-deps docs web check
|
release-snapshot: clean cli-deps docs web check
|
||||||
goreleaser release --snapshot --skip-publish --rm-dist --debug
|
goreleaser release --snapshot --skip-publish --rm-dist --debug
|
||||||
|
|
||||||
release-check-tags:
|
release-check-tags:
|
||||||
|
@ -204,31 +208,31 @@ release-check-tags:
|
||||||
|
|
||||||
# Installing targets
|
# Installing targets
|
||||||
|
|
||||||
install-amd64: remove-binary
|
install-linux-amd64: remove-binary
|
||||||
sudo cp -a dist/ntfy_amd64_linux_amd64_v1/ntfy /usr/bin/ntfy
|
sudo cp -a dist/ntfy_amd64_linux_amd64_v1/ntfy /usr/bin/ntfy
|
||||||
|
|
||||||
install-armv6: remove-binary
|
install-linux-armv6: remove-binary
|
||||||
sudo cp -a dist/ntfy_armv6_linux_arm_6/ntfy /usr/bin/ntfy
|
sudo cp -a dist/ntfy_armv6_linux_arm_6/ntfy /usr/bin/ntfy
|
||||||
|
|
||||||
install-armv7: remove-binary
|
install-linux-armv7: remove-binary
|
||||||
sudo cp -a dist/ntfy_armv7_linux_arm_7/ntfy /usr/bin/ntfy
|
sudo cp -a dist/ntfy_armv7_linux_arm_7/ntfy /usr/bin/ntfy
|
||||||
|
|
||||||
install-arm64: remove-binary
|
install-linux-arm64: remove-binary
|
||||||
sudo cp -a dist/ntfy_arm64_linux_arm64/ntfy /usr/bin/ntfy
|
sudo cp -a dist/ntfy_arm64_linux_arm64/ntfy /usr/bin/ntfy
|
||||||
|
|
||||||
remove-binary:
|
remove-binary:
|
||||||
sudo rm -f /usr/bin/ntfy
|
sudo rm -f /usr/bin/ntfy
|
||||||
|
|
||||||
install-amd64-deb: purge-package
|
install-linux-amd64-deb: purge-package
|
||||||
sudo dpkg -i dist/ntfy_*_linux_amd64.deb
|
sudo dpkg -i dist/ntfy_*_linux_amd64.deb
|
||||||
|
|
||||||
install-armv6-deb: purge-package
|
install-linux-armv6-deb: purge-package
|
||||||
sudo dpkg -i dist/ntfy_*_linux_armv6.deb
|
sudo dpkg -i dist/ntfy_*_linux_armv6.deb
|
||||||
|
|
||||||
install-armv7-deb: purge-package
|
install-linux-armv7-deb: purge-package
|
||||||
sudo dpkg -i dist/ntfy_*_linux_armv7.deb
|
sudo dpkg -i dist/ntfy_*_linux_armv7.deb
|
||||||
|
|
||||||
install-arm64-deb: purge-package
|
install-linux-arm64-deb: purge-package
|
||||||
sudo dpkg -i dist/ntfy_*_linux_arm64.deb
|
sudo dpkg -i dist/ntfy_*_linux_arm64.deb
|
||||||
|
|
||||||
purge-package:
|
purge-package:
|
||||||
|
|
|
@ -112,8 +112,8 @@ by typing `make`:
|
||||||
$ make
|
$ make
|
||||||
Typical commands (more see below):
|
Typical commands (more see below):
|
||||||
make build - Build web app, documentation and server/client (sloowwww)
|
make build - Build web app, documentation and server/client (sloowwww)
|
||||||
make server-amd64 - Build server/client binary (amd64, no web app or docs)
|
make cli-linux-amd64 - Build server/client binary (amd64, no web app or docs)
|
||||||
make install-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64)
|
make install-linux-amd64 - Install ntfy binary to /usr/bin/ntfy (amd64)
|
||||||
make web - Build the web app
|
make web - Build the web app
|
||||||
make docs - Build the documentation
|
make docs - Build the documentation
|
||||||
make check - Run all tests, vetting/formatting checks and linters
|
make check - Run all tests, vetting/formatting checks and linters
|
||||||
|
@ -158,45 +158,47 @@ $ make release-snapshot
|
||||||
During development, you may want to be more picky and build only certain things. Here are a few examples.
|
During development, you may want to be more picky and build only certain things. Here are a few examples.
|
||||||
|
|
||||||
### Build the ntfy binary
|
### Build the ntfy binary
|
||||||
To build only the `ntfy` binary **without the web app or documentation**, use the `make server-...` targets:
|
To build only the `ntfy` binary **without the web app or documentation**, use the `make cli-...` targets:
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
$ make
|
$ make
|
||||||
Build server & client (not release version):
|
Build server & client (not release version):
|
||||||
make server - Build server & client (all architectures)
|
make cli - Build server & client (all architectures)
|
||||||
make server-amd64 - Build server & client (amd64 only)
|
make cli-linux-amd64 - Build server & client (Linux, amd64 only)
|
||||||
make server-armv7 - Build server & client (armv7 only)
|
make cli-linux-armv6 - Build server & client (Linux, armv6 only)
|
||||||
make server-arm64 - Build server & client (arm64 only)
|
make cli-linux-armv7 - Build server & client (Linux, armv7 only)
|
||||||
|
make cli-linux-arm64 - Build server & client (Linux, arm64 only)
|
||||||
|
make cli-windows-amd64 - Build client (Windows, amd64 only)
|
||||||
```
|
```
|
||||||
|
|
||||||
So if you're on an amd64/x86_64-based machine, you may just want to run `make server-amd64` during testing. On a modern
|
So if you're on an amd64/x86_64-based machine, you may just want to run `make cli-linux-amd64` during testing. On a modern
|
||||||
system, this shouldn't take longer than 5-10 seconds. I often combine it with `install-amd64` so I can run the binary
|
system, this shouldn't take longer than 5-10 seconds. I often combine it with `install-linux-amd64` so I can run the binary
|
||||||
right away:
|
right away:
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
$ make server-amd64 install-amd64
|
$ make cli-linux-amd64 install-linux-amd64
|
||||||
$ ntfy serve
|
$ ntfy serve
|
||||||
```
|
```
|
||||||
|
|
||||||
**During development of the main app, you can also just use `go run main.go`**, as long as you run
|
**During development of the main app, you can also just use `go run main.go`**, as long as you run
|
||||||
`make server-deps-static-sites`at least once and `CGO_ENABLED=1`:
|
`make cli-deps-static-sites`at least once and `CGO_ENABLED=1`:
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
$ export CGO_ENABLED=1
|
$ export CGO_ENABLED=1
|
||||||
$ make server-deps-static-sites
|
$ make cli-deps-static-sites
|
||||||
$ go run main.go serve
|
$ go run main.go serve
|
||||||
2022/03/18 08:43:55 Listening on :2586[http]
|
2022/03/18 08:43:55 Listening on :2586[http]
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't run `server-deps-static-sites`, you may see an error *`pattern ...: no matching files found`*:
|
If you don't run `cli-deps-static-sites`, you may see an error *`pattern ...: no matching files found`*:
|
||||||
```
|
```
|
||||||
$ go run main.go serve
|
$ go run main.go serve
|
||||||
server/server.go:85:13: pattern docs: no matching files found
|
server/server.go:85:13: pattern docs: no matching files found
|
||||||
```
|
```
|
||||||
|
|
||||||
This is because we use `go:embed` to embed the documentation and web app, so the Go code expects files to be
|
This is because we use `go:embed` to embed the documentation and web app, so the Go code expects files to be
|
||||||
present at `server/docs` and `server/site`. If they are not, you'll see the above error. The `server-deps-static-sites`
|
present at `server/docs` and `server/site`. If they are not, you'll see the above error. The `cli-deps-static-sites`
|
||||||
target creates dummy files that ensures that you'll be able to build.
|
target creates dummy files that ensures that you'll be able to build.
|
||||||
|
|
||||||
|
|
||||||
|
@ -210,7 +212,7 @@ $ make web
|
||||||
```
|
```
|
||||||
|
|
||||||
This will build the web app using Create React App and then **copy the production build to the `server/site` folder**, so
|
This will build the web app using Create React App and then **copy the production build to the `server/site` folder**, so
|
||||||
that when you `make server` (or `make server-amd64`, ...), you will have the web app included in the `ntfy` binary.
|
that when you `make cli` (or `make cli-linux-amd64`, ...), you will have the web app included in the `ntfy` binary.
|
||||||
|
|
||||||
If you're developing on the web app, it's best to just `cd web` and run `npm start` manually. This will open your browser
|
If you're developing on the web app, it's best to just `cd web` and run `npm start` manually. This will open your browser
|
||||||
at `http://127.0.0.1:3000` with the web app, and as you edit the source files, they will be recompiled and the browser
|
at `http://127.0.0.1:3000` with the web app, and as you edit the source files, they will be recompiled and the browser
|
||||||
|
|
|
@ -123,7 +123,7 @@ which will read the `subscribe` config from the config file. Please also check o
|
||||||
|
|
||||||
Here's an example config file that subscribes to three different topics, executing a different command for each of them:
|
Here's an example config file that subscribes to three different topics, executing a different command for each of them:
|
||||||
|
|
||||||
=== "~/.config/ntfy/client.yml"
|
=== "~/.config/ntfy/client.yml (Linux)"
|
||||||
```yaml
|
```yaml
|
||||||
subscribe:
|
subscribe:
|
||||||
- topic: echo-this
|
- topic: echo-this
|
||||||
|
@ -145,26 +145,27 @@ Here's an example config file that subscribes to three different topics, executi
|
||||||
fi
|
fi
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "%AppData%\ntfy\client.yml"
|
=== "%AppData%\ntfy\client.yml (Windows)"
|
||||||
```
|
```yaml
|
||||||
subscribe:
|
subscribe:
|
||||||
- topic: echo-this
|
- topic: echo-this
|
||||||
command: 'echo Message received: %message%'
|
command: 'echo Message received: %message%'
|
||||||
- topic: calc
|
- topic: alerts
|
||||||
command: calc
|
command: |
|
||||||
|
notifu /m "%NTFY_MESSAGE%"
|
||||||
|
exit 0
|
||||||
if:
|
if:
|
||||||
priority: high,urgent
|
priority: high,urgent
|
||||||
- topic: toastthis
|
- topic: calc
|
||||||
command: |
|
command: calc
|
||||||
notifu /p "a title: %NTFY_TITLE%" /m "%NTFY_MESSAGE%"
|
|
||||||
exit 0
|
|
||||||
```
|
```
|
||||||
|
|
||||||
In this example, when `ntfy subscribe --from-config` is executed:
|
In this example, when `ntfy subscribe --from-config` is executed:
|
||||||
|
|
||||||
* Messages to `echo-this` simply echos to standard out
|
* Messages to `echo-this` simply echos to standard out
|
||||||
* Messages to `alerts` display as desktop notification for high priority messages using [notify-send](https://manpages.ubuntu.com/manpages/focal/man1/notify-send.1.html)
|
* Messages to `alerts` display as desktop notification for high priority messages using [notify-send](https://manpages.ubuntu.com/manpages/focal/man1/notify-send.1.html) (Linux)
|
||||||
* Messages to `calc` open the gnome calculator 😀 (*because, why not*)
|
or [notifu](https://www.paralint.com/projects/notifu/) (Windows)
|
||||||
|
* Messages to `calc` open the calculator 😀 (*because, why not*)
|
||||||
* Messages to `print-temp` execute an inline script and print the CPU temperature (Linux version only)
|
* Messages to `print-temp` execute an inline script and print the CPU temperature (Linux version only)
|
||||||
|
|
||||||
I hope this shows how powerful this command is. Here's a short video that demonstrates the above example:
|
I hope this shows how powerful this command is. Here's a short video that demonstrates the above example:
|
||||||
|
|
Loading…
Reference in a new issue