"Easy Project Setup for Pi" - (kurz: EPSPi) - ist angelehnt (oder mittlerweile eher Abgekoppelt) und inspiriert vom Project SetupPi - Schneller zum eigenen Projekt!. Leider scheint perry kein Interesse an meinem Code zu haben, finde es aber zu schade dies im Sande verlaufen zu lassen da mir die Idee eigentlich gut gefällt.
An dieser Stelle auch ein Danke an perry für diese Idee :thumbs1:
Das bash Script ist vom Grundgerüst her schon sehr weit fortgeschritten, es fehlt aber weiterhin der eigentliche InstallationsAblauf, da ich ich mir hier noch nicht sicher bin welchen Weg man hier einschlagen sollte bzw welcher Sinnvoll wäre.
EPSPi liegt zur Zeit hier: http://RaspberryPI.RoXXs.org/EPSPi/
Da ist zum einen das bash Script zu finden, die Konfigurationsdateien der Packs sowie meine Anfänger des Web-Interfaces.
Beim starten des Scripts geschieht folgendes:
- Das Script muss als root (oder zumindest mit dessen Rechten) ausgeführt werden.
- Das Script darf nur ein mal zur selben Zeit ausgeführt werden - zu diesem zweck wird ein PIDFILE überprüft.
- Es wird überprüft ob die fürs Script benötigten Pakete installiert sind: curl , und entweder whiptail oder dialog (letzteres ist die Voreinstellung was ich besser finde, das Script funktioniert aber auch mit whiptail)
- Damit das Script genutzt werden kann, muss der PI online sein - zu diesem Zweck wird mein Server angepingt, kommt keine Antwort kann das Script auch nicht weiter genutzt werden..
- Es wird die Version des Scripts mit dem Inhalt der Datei http://RaspberryPI.RoXXs.org/EPSPi/.version überprüft. Ist eine neuere Scriptversion verfügbar wird das Script neu geladen und erneut ausgeführt.
- Es läuft auch ein Script auf dem Server um die .version automatisch zu erneuern (via crontab jede Minute)
- Es werden alle Konfigurationsdateien der verfügbaren Pakete/Projekte heruntergeladen und ausgelesen, was recht schnell geht: für jede *.cfg ein "punkt" um einen Prozess anzuzeigen
- In den Configs sind Kategorien hinterlegt, nach dessen die Packs im Main_Menü sortiert angezeigt werden. (1. Screenshot)
- Hinter der Kategorie steht wie viele Packs in dieser Kategorie verfügbar sind
- Nach der Auswahl der Kategorie kriegt man eine Auswahl der Pakete angezeigt, mit einer kurzen Beschreibung. (2. Screenshot)
- Ein bereits installiertes Pack wird mit (*) markiert.
- Geplant ist auch dass das Script die installierte Pack-Version mit der verfügbaren vergleicht und ggf ein mögliches Update anzeigt
- Wählt man ein Pack aus wird eine (hoffentlich) ausführlichere Beschreibung angezeigt. Drückt man dann Enter kommt man zum nächsten Screen, drückt man aber ESC gelangt man zurück zur Pack-Auswahl. (3. Screenshot)
- Hat man Enter gedrückt wird gefragt ob man das Pack installieren möchte ( Yes / No ). (4. Screenshot)
Hiernach würde dann normalerweise das setupfile , welches in der Konfiguration hinterlegt ist, ausgeführt werden..
- Hat man Enter gedrückt wird gefragt ob man das Pack installieren möchte ( Yes / No ). (4. Screenshot)
- Ist in der Konfigurationsdatei hinterlegt dass das Pack ein Reboot erfordert, wird nach der Installation gefragt ob dieser nun durchgeführt werden soll.
Die Konfigurationsdatei sieht derzeit wie folgt aus:
Pack="DoorPI"
category="Other"
shortdescription="Türsprechanlage mit dem PI"
description="Ziel des Projektes ist die Steuerung einer Türsprechanlage mittels einem Raspberry Pi (Model B) und PiFace.\n\nDoorPi basiert auf dem Projekt 'door-berry' von 'mpodroid' (https://github.com/mpodroid/door-berry) aber seit einiger Zeit findet dort keine Entwicklung mehr statt."
url="https://github.com/motom001/DoorPi"
version="0.1"
setupfile="DoorPI.sh"
conflict="FloorPI"
deinstall=""
additional=""
Reboot="0"
Alles anzeigen
...Soweit so gut....
Ihr könnt das Script mit folgendem Befehl laden und testen:
sudo wget -q -O/usr/local/bin/EPSPi.sh http://raspberrypi.roxxs.org/EPSPi/EPSPi.sh && sudo chmod +x /usr/local/bin/EPSPi.sh && sudo EPSPi.sh
(wenn ihrs dann später noch mal ausführen wollt braucht ihr nur sudo EPSPi.sh eingeben)
Leider tue ich mich schwer das Web-Interface zu erstellen - generell verballer ich mehr Zeit mit diesem blöden HTML Zeuchs als mit bash... Hab damit schon grob angefangen ( Unterordner html/ ) aber ich tu mich damit wie gesagt schwer eine Basis zu finden wo User ihre Projekte hinzufügen können oder wo man diese auch verwalten / freischalten kann....
Ich weiß auch noch nicht ob es über Github oder sowas soviel mehr Sinn machen würde - es soll ja auch so einfach wie möglich bleiben...
Daher bitte ich hier nun um Rat:
Wie würdet ihr das machen?
Hat hier vielleicht jemand Lust (und Skills) sich um das Web-Interface zu kümmern