mirror of
https://github.com/JDM170/comp_auto_restart
synced 2024-10-25 13:43:54 +07:00
Update
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
13
filesio.py
13
filesio.py
@@ -7,19 +7,20 @@ from os import remove
|
||||
|
||||
|
||||
class FilesIO:
|
||||
def __init__(self, file_name, default_values):
|
||||
def __init__(self, file_name=".\\settings.json", default_values=None):
|
||||
self.file_name = file_name
|
||||
self.default_values = default_values
|
||||
|
||||
def create_default_file(self):
|
||||
if exists(self.file_name):
|
||||
remove(self.file_name)
|
||||
with open(self.file_name, encoding="utf-8", mode="w") as f:
|
||||
dump(self.default_values, f, indent=4, separators=(",", " : "))
|
||||
if self.default_values is not None:
|
||||
if exists(self.file_name):
|
||||
remove(self.file_name)
|
||||
with open(self.file_name, encoding="utf-8", mode="w") as f:
|
||||
dump(self.default_values, f, indent=4, separators=(",", " : "))
|
||||
|
||||
def get_data(self):
|
||||
try:
|
||||
with open(self.file_name, encoding="utf-8") as f:
|
||||
with open(self.file_name, encoding="utf-8", mode="r") as f:
|
||||
ret_data = load(f)
|
||||
except FileNotFoundError:
|
||||
self.create_default_file()
|
||||
|
||||
@@ -2,19 +2,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from sys import exit, argv
|
||||
# from os import system
|
||||
from os import system
|
||||
from subprocess import Popen
|
||||
from time import sleep
|
||||
from filesio import FilesIO
|
||||
from match_name import MatchIO
|
||||
|
||||
file_name = ".\\computer_names.json"
|
||||
|
||||
default_values = {
|
||||
"expr_list": [
|
||||
[r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01
|
||||
[r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01
|
||||
[r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01
|
||||
],
|
||||
"comp": {
|
||||
"pc": {
|
||||
"2": [ # Пятидневка
|
||||
"IT01",
|
||||
"IT02"
|
||||
@@ -28,31 +29,37 @@ default_values = {
|
||||
loaded_file = None
|
||||
|
||||
|
||||
def main(comp_key):
|
||||
def main(comp_key, is_prod):
|
||||
global loaded_file
|
||||
list_pc_names = loaded_file.get("comp").get(comp_key)
|
||||
list_pc_names = loaded_file.get("pc").get(comp_key)
|
||||
if list_pc_names is not None:
|
||||
for pc_name in list_pc_names:
|
||||
formatted_pc_name = matchio.check_arm_name(pc_name)
|
||||
if formatted_pc_name is not False:
|
||||
# print("pc_name:", formatted_pc_name)
|
||||
# system("shutdown /m \\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
||||
# Popen("shutdown /m \\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait()
|
||||
print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
||||
if is_prod is True:
|
||||
# system("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
||||
Popen("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait()
|
||||
else:
|
||||
print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
|
||||
else:
|
||||
print("Попробуйте еще раз выбрать область запуска скрипта!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(argv) < 2:
|
||||
if len(argv) < 3:
|
||||
print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех")
|
||||
exit()
|
||||
try:
|
||||
filesio = FilesIO(file_name, default_values)
|
||||
filesio = FilesIO(default_values=default_values)
|
||||
loaded_file = filesio.get_data()
|
||||
if loaded_file is False:
|
||||
return
|
||||
raise OSError
|
||||
matchio = MatchIO(loaded_file.get("expr_list"))
|
||||
main(argv[1])
|
||||
main(argv[1], argv[2].strip() == "prod")
|
||||
except OSError:
|
||||
print("Файл с настройками не найден. Создан файл со стандартными настройками.")
|
||||
sleep(20)
|
||||
exit()
|
||||
except KeyboardInterrupt:
|
||||
exit()
|
||||
@@ -13,8 +13,8 @@ default_expr_list = [
|
||||
|
||||
|
||||
class MatchIO:
|
||||
def __init__(self, expr_list):
|
||||
self.expr_list = expr_list is not None and expr_list or default_expr_list
|
||||
def __init__(self, expr_list=None):
|
||||
self.expr_list = expr_list is None and default_expr_list or expr_list
|
||||
|
||||
def check_arm_name(self, pc_name):
|
||||
for r in self.expr_list:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
""
|
||||
]
|
||||
],
|
||||
"comp" : {
|
||||
"pc" : {
|
||||
"2" : [
|
||||
"IT01",
|
||||
"IT02",
|
||||
@@ -22,7 +22,9 @@
|
||||
],
|
||||
"7" : [
|
||||
"PIS09",
|
||||
"PIS10"
|
||||
"PIS10",
|
||||
"630870THE01",
|
||||
"R54-630870THE02"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user