-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Möglichkeit das daemon-File neu erzeugen zu lassen.
Das Template wird dabei von GitHub geladen, geparst und unter /etc/init.d/doorpi abgelegt Start mit ``` sudo ./recreate_daemon_file.py ```
- Loading branch information
Showing
1 changed file
with
32 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/usr/bin/python | ||
# -*- coding: utf-8 -*- | ||
|
||
import doorpi.metadata as metadata | ||
import os | ||
import urllib2 | ||
|
||
print("start to create daemon file now...") | ||
|
||
|
||
def parse_string(raw_string): | ||
for meta_key in dir(metadata): | ||
if not meta_key.startswith('__'): | ||
raw_string = raw_string.replace('!!%s!!' % meta_key, str(getattr(metadata, meta_key))) | ||
return raw_string | ||
|
||
|
||
def main(): | ||
url = 'https://raw.githubusercontent.com/motom001/DoorPi/master/'+metadata.daemon_name_template | ||
daemon_filename = os.path.join(metadata.daemon_folder, metadata.daemon_name) | ||
print("start down download and parse new daemon file:") | ||
print("URL: "+url) | ||
print("FILE: "+daemon_filename) | ||
with open(daemon_filename, "w") as daemon_file: | ||
for line in urllib2.urlopen(url): | ||
daemon_file.write(parse_string(line)) | ||
print("download successfully - change chmod to 0755 now") | ||
os.chmod(daemon_filename, 0755) | ||
print "finished" | ||
|
||
if __name__ == '__main__': | ||
main() |
e44a148
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nettes Feature, aber warum? Git pull und die Installationsroutine lokal ausführen wäre konsistent und das nachladen von code aus dem Internet ist aus Sicherheitsgründen nicht besonders glücklich.
e44a148
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hab lange drüber nachgedacht und bin jetzt auch noch nicht mit der Lösung zufrieden.
Es sollte eine Möglichkeit gefunden werden, das daemon-file neu erzeugen zu lassen und dabei die metadata-Variablen einer bestehenden Installation einzubinden.
Da die meisten über PyPi installieren geht kein git push
Auch ein erneutes Ausführen der Installation wollte ich vermeiden, da dadurch Änderungen der Nutzer überschrieben werden und verloren gehen.
Somit bin ich bei dieser Variante stehen geblieben...
Ich werde Deine Kritik aber aufnehmen und das doc Verzeichnis in die fertigen Installation einbinden sowie diese Funktion hier als DoorPi stativ methode einbinden. Dann sollten alle zufrieden sein - oder?
e44a148
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Für die (noch weit entfernte) Zukunft wird es in der main.py realisiert und das Template gehört zum Installationsumfang und muss nicht aus dem Netz nachgeladen werden:
https://github.com/motom001/DoorPi/blob/DoorPi3/doorpi/main.py#L49
https://github.com/motom001/DoorPi/blob/DoorPi3/doorpi/docs/linux.daemon.tpl
Besser so?