written by Lars Hoogestraat on July 5, 2020
Ziel war es eine kleine Kodi Erweiterung zu schreiben, welche das aktuelle Bild aufnimmt und die Farben der LEDs entsprechend setzt.
Bei den Mote Sticks handelt es sich um vier kleine Streifen mit jeweils 16 RGB LEDs. Pimoroni Shop
Wer die Mote Sticks besitzt und eine Kodi Leia Installation parat hat, kann die Erweiterung gerne ausprobieren. Weitere Informationen gibt es hier: Git
written by Lars Hoogestraat on March 19, 2019
Eine kurze Beschreibung, wie lighttpd für “go get” in Verbindung mit z.B. cgit konfiguriert werden kann.
Bei einem “go get” wird ggf. ein Metatag ausgewertet, falls es keinen eindeutigen Hinweis auf die Versionsverwaltung in der URL gibt. Siehe Dokumentation dazu.
Damit “go get” nun trotzdem weiß, wo und wie die Abhängigkeiten geladen werden können, muss im HTML ein Metatag mit dem Namen “go-import” definiert werden. Das Metatag wird vor dem Laden der Abhängigkeit abgefragt, dazu wird an die URL des Imports der Parameter “?go-get=1” an die aufzulösende Import URL angehangen.
Zum Beispiel wird das Modul “github.com/gorilla/csrf” importiert. Ein “go get” ruft dann “https://github.com/gorilla/csrf?go-get=1” auf und sucht nach dem Metatag mit dem Namen “go-import”.
Bei Github erscheint im HTML folgendes Tag:
<meta name="go-import" content="github.com/gorilla/csrf git https://github.com/gorilla/csrf.git">
Im ‘content’ steht einmal der Modulname, die verwendete Versionsverwaltung und die URL welche zum Repository führt.
Da cgit selber den URL Parameter nicht auswertet, nutze ich das Modul mod_magnet von lighttpd, um auf das “go-get=1” entsprechend zu reagieren und mit dem Metatag zu antworten.
Dafür braucht es ein kleines Lua Script:
if (lighty.env["uri.query"] == "go-get=1") then
local uri = string.gmatch(lighty.env["request.orig-uri"], "([^?]+)")
local t={} ; i=1
for str in uri do
-- 1 -> repo name
-- 2 -> query params (go-get=1)
t[i] = str
i = i + 1
end
lighty.content = { "<!DOCTYPE html><head><meta name=\"go-import\" content=\"" , lighty.env["uri.authority"] , t[1] , " git " , lighty.env["uri.scheme"] , "://" , lighty.env["uri.authority"] , t[1] , "\"></head><body></body></html>\n" }
return 200
end
Damit das Skript aufgerufen wird, einfach in der lighttpd.conf folgendes in eure Site eintragen:
$HTTP["host"] == "git.hoogi.eu" {
...
magnet.attract-physical-path-to = ( "/etc/lighttpd/go-get.lua" )
}