Skip to content

Commit

Permalink
Möglichkeit das daemon-File neu erzeugen zu lassen.
Browse files Browse the repository at this point in the history
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
motom001 committed Mar 11, 2016
1 parent 598f559 commit e44a148
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions doorpi/docs/service/recreate_daemon_file.py
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()

3 comments on commit e44a148

@cspann
Copy link

@cspann cspann commented on e44a148 Mar 13, 2016

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.

@motom001
Copy link
Owner Author

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?

@motom001
Copy link
Owner Author

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?

Please sign in to comment.