refactor: restructure to standard Go project layout (cmd/ + internal/)
- Move entry point to cmd/streamdeck-lets-go/ - Split package main into internal packages: - internal/deck: hardware control (Deck, events, brightness) - internal/render: key rendering, icons, fonts, PageManager - internal/web: HTTP API + embedded SPA - internal/daemon: event loop, autoswitch, screensaver, actions - Add ConfigDir() to internal/config - Export cross-package API (Deck, PageManager, WebServer, etc.) - Move dist/arch/ → packaging/ with updated PKGBUILD/.SRCINFO - Add Makefile (build, test, vet, fmt, install) - Update README with new build commands and project structure - Delete unused media.go stub
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
pkgbase = streamdeck-lets-go-git
|
||||
pkgdesc = Lightweight daemon for controlling Elgato Stream Deck devices with a built-in web UI
|
||||
pkgver = r0.unknown
|
||||
pkgrel = 1
|
||||
url = https://github.com/totmin/streamdeck-lets-go
|
||||
arch = x86_64
|
||||
arch = aarch64
|
||||
license = MIT
|
||||
makedepends = go>=1.26
|
||||
makedepends = git
|
||||
depends = libusb
|
||||
optdepends = librsvg: SVG icon rendering
|
||||
optdepends = fontconfig: system font detection
|
||||
provides = streamdeck-lets-go
|
||||
conflicts = streamdeck-lets-go
|
||||
source = streamdeck-lets-go-git::git+https://github.com/totmin/streamdeck-lets-go.git
|
||||
source = packaging/streamdeck-lets-go.service
|
||||
source = packaging/90-streamdeck.rules
|
||||
b2sums = SKIP
|
||||
b2sums = SKIP
|
||||
b2sums = SKIP
|
||||
|
||||
pkgname = streamdeck-lets-go-git
|
||||
@@ -0,0 +1,7 @@
|
||||
# Elgato Stream Deck — allow access for locally logged-in users
|
||||
# Vendor 0fd9
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", TAG+="uaccess"
|
||||
@@ -0,0 +1,48 @@
|
||||
# Maintainer: totmin <totmin@users.noreply.github.com>
|
||||
|
||||
pkgname=streamdeck-lets-go-git
|
||||
_giturl=https://github.com/totmin/streamdeck-lets-go.git
|
||||
pkgver=0.1.0
|
||||
pkgrel=1
|
||||
pkgdesc="Lightweight daemon for controlling Elgato Stream Deck devices with a built-in web UI"
|
||||
arch=('x86_64' 'aarch64')
|
||||
url="https://github.com/totmin/streamdeck-lets-go"
|
||||
license=('MIT')
|
||||
depends=('libusb')
|
||||
optdepends=('librsvg: SVG icon rendering'
|
||||
'fontconfig: system font detection')
|
||||
makedepends=('go>=1.26' 'git')
|
||||
provides=('streamdeck-lets-go')
|
||||
conflicts=('streamdeck-lets-go')
|
||||
|
||||
source=("${pkgname}::git+${_giturl}"
|
||||
"packaging/streamdeck-lets-go.service"
|
||||
"packaging/90-streamdeck.rules")
|
||||
b2sums=('SKIP'
|
||||
'SKIP'
|
||||
'SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd "${srcdir}/${pkgname}"
|
||||
git describe --always --tags 2>/dev/null || echo "r0.$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${pkgname}"
|
||||
export CGO_ENABLED=1
|
||||
go build \
|
||||
-ldflags "-s -w" \
|
||||
-o streamdeck-lets-go ./cmd/streamdeck-lets-go
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/${pkgname}"
|
||||
|
||||
install -Dm755 streamdeck-lets-go "${pkgdir}/usr/bin/streamdeck-lets-go"
|
||||
|
||||
install -Dm644 "${srcdir}/packaging/streamdeck-lets-go.service" \
|
||||
"${pkgdir}/usr/lib/systemd/user/streamdeck-lets-go.service"
|
||||
|
||||
install -Dm644 "${srcdir}/packaging/90-streamdeck.rules" \
|
||||
"${pkgdir}/usr/lib/udev/rules.d/90-streamdeck.rules"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Stream Deck Lets Go daemon
|
||||
Documentation=https://github.com/Wakatron/streamdeck-lets-go
|
||||
After=graphical-session.target
|
||||
Wants=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/streamdeck-lets-go daemon
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
Reference in New Issue
Block a user