-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpatcher.py
58 lines (53 loc) · 1.72 KB
/
patcher.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import subprocess
import json
import time
import os
import requests
import os.path
from os import path
from datetime import datetime
import socket
def log(message):
hasLogDir = path.exists('/home/pi/logs/')
if hasLogDir == False:
os.mkdir('/home/pi/logs/')
logfile = "/home/pi/logs/patcher_log_"+datetime.now().strftime("%Y-%m-%d-%H")+".log"
date_time = datetime.now().strftime("%m/%d/%Y, %H:%M:%S")
message = date_time + ": " + message
print(message)
logFile = open(logfile,"a+")
logFile.write(message+"\n")
logFile.close()
def doCheck():
os.system('cd /home/pi/Lights && git pull --all')
log('Waiting for ten seconds...')
time.sleep(9)
log('Check token')
datafile = '/home/pi/Lights/lightdata.json'
tokenfile = '/home/pi/lightdata.json'
with open(datafile, "r") as read_file:
data = json.load(read_file)
log(data['version'])
hasToken = path.exists(tokenfile)
if hasToken == False:
log('Creating new token.')
with open(tokenfile, "w") as write_file:
json.dump(data, write_file, sort_keys=True, indent=4)
with open(tokenfile, "r") as read_file:
token = json.load(read_file)
log(token['version'])
if token['version'] != data['version']:
if len(data["newPip"]) > 0:
pips = "sudo pip3 install"
for package in data["newPip"]:
pips = pips + " " + package
os.system(pips)
with open(tokenfile, "w") as write_file:
json.dump(data, write_file, sort_keys=True, indent=4)
log('Rebooting.')
time.sleep(1)
os.system('sudo reboot now')
exit()
for i in range(0,5):
doCheck()
os.system('sudo python3 health_manager.py')