mirror of
https://github.com/JDM170/comp_auto_restart
synced 2024-10-25 13:43:54 +07:00
Update filesio.py, main.py
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
18
filesio.py
18
filesio.py
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from json import load, dump
|
from json import load, dump, JSONDecodeError
|
||||||
from os.path import exists
|
from os.path import exists
|
||||||
from os import remove
|
from os import remove
|
||||||
|
|
||||||
@@ -18,12 +18,22 @@ class FilesIO:
|
|||||||
with open(self.file_name, encoding="utf-8", mode="w") as f:
|
with open(self.file_name, encoding="utf-8", mode="w") as f:
|
||||||
dump(self.default_values, f, indent=4, separators=(",", " : "))
|
dump(self.default_values, f, indent=4, separators=(",", " : "))
|
||||||
|
|
||||||
|
def check_file_structure(self, file_data):
|
||||||
|
if self.default_values is not None:
|
||||||
|
return file_data.keys() == self.default_values.keys()
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
|
ret_data, err_msg = False, ""
|
||||||
try:
|
try:
|
||||||
with open(self.file_name, encoding="utf-8", mode="r") as f:
|
with open(self.file_name, encoding="utf-8", mode="r") as f:
|
||||||
ret_data = load(f)
|
ret_data = load(f)
|
||||||
return ret_data
|
if not self.check_file_structure(ret_data):
|
||||||
|
err_msg = "В файле настроек не хватает данных. Пересоздайте файл с настройками."
|
||||||
|
ret_data = False
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
|
err_msg = "Файл не найден. Создан новый шаблонный файл."
|
||||||
self.create_default_file()
|
self.create_default_file()
|
||||||
# ret_data = self.default_values
|
except JSONDecodeError:
|
||||||
return False
|
err_msg = "Ошибка загрузки файла, проверьте на наличие ошибок."
|
||||||
|
finally:
|
||||||
|
return ret_data, err_msg
|
||||||
|
|||||||
21
main.py
21
main.py
@@ -2,21 +2,22 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from sys import exit, argv
|
from sys import exit, argv
|
||||||
from os import system
|
from os import system, getcwd
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from filesio import FilesIO
|
from filesio import FilesIO
|
||||||
from m_match_name.main import MatchIO
|
from m_match_name.main import MatchIO
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
|
||||||
default_values = {
|
default_values = {
|
||||||
"restart_time": 60,
|
"restart_time": 60,
|
||||||
"restart_message": "Плановая перезагрузка компьютера через 1 минуту!",
|
"restart_message": "Плановая перезагрузка компьютера через 1 минуту!",
|
||||||
"pc": {
|
"pc": {
|
||||||
"2": [ # Пятидневка
|
"1": [ # Пятидневка
|
||||||
"IT01",
|
"IT01",
|
||||||
"IT02"
|
"IT02"
|
||||||
],
|
],
|
||||||
"7": [ # Цех
|
"2": [ # Цех
|
||||||
"PIS09",
|
"PIS09",
|
||||||
"PIS10"
|
"PIS10"
|
||||||
]
|
]
|
||||||
@@ -37,6 +38,7 @@ def main(comp_key, is_debug):
|
|||||||
if is_debug is False:
|
if is_debug is False:
|
||||||
# system("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
# system("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
||||||
Popen("shutdown /m \\\{} /r /f /t {} /c {}".format(formatted_pc_name, restart_time, restart_message)).wait()
|
Popen("shutdown /m \\\{} /r /f /t {} /c {}".format(formatted_pc_name, restart_time, restart_message)).wait()
|
||||||
|
sleep(2)
|
||||||
else:
|
else:
|
||||||
print("shutdown /m \\\{} /r /f /t {} /c {}".format(formatted_pc_name, restart_time, restart_message))
|
print("shutdown /m \\\{} /r /f /t {} /c {}".format(formatted_pc_name, restart_time, restart_message))
|
||||||
else:
|
else:
|
||||||
@@ -44,18 +46,19 @@ def main(comp_key, is_debug):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(argv) < 3:
|
print(argv)
|
||||||
print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех")
|
if len(argv) < 2:
|
||||||
|
print("Укажите номер запускаемой области!\n1 - Кабинеты; 2 - Цех")
|
||||||
exit()
|
exit()
|
||||||
try:
|
try:
|
||||||
filesio = FilesIO(default_values=default_values)
|
filesio = FilesIO(default_values=default_values)
|
||||||
loaded_file = filesio.get_data()
|
loaded_file, err_msg = filesio.get_data()
|
||||||
if loaded_file is False:
|
if loaded_file is False:
|
||||||
raise OSError
|
raise Exception(err_msg)
|
||||||
matchio = MatchIO()
|
matchio = MatchIO()
|
||||||
main(argv[1], argv[2].strip() == "debug")
|
main(argv[1], argv[2].strip() == "debug")
|
||||||
except OSError:
|
except Exception as exc:
|
||||||
print("Файл с настройками не найден. Создан файл со стандартными настройками.")
|
print(exc)
|
||||||
exit()
|
exit()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
exit()
|
exit()
|
||||||
|
|||||||
Reference in New Issue
Block a user