This commit is contained in:
2022-03-23 18:06:16 +07:00
committed by GitHub
parent 008148229f
commit 65afbacb58
6 changed files with 188 additions and 191 deletions

View File

@@ -1,2 +1,2 @@
@echo off
pyinstaller build.spec --upx-dir=upx\
@echo off
pyinstaller build.spec --upx-dir=upx\

View File

@@ -1,40 +1,40 @@
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='Scheduled computer restart',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None)
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='Scheduled computer restart',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None)

View File

@@ -1,29 +1,29 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from json import load, dump
from os.path import exists
from os import remove
class FilesIO:
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 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", mode="r") as f:
ret_data = load(f)
except FileNotFoundError:
self.create_default_file()
# ret_data = self.default_values
return False
return ret_data
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from json import load, dump
from os.path import exists
from os import remove
class FilesIO:
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 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", mode="r") as f:
ret_data = load(f)
return ret_data
except FileNotFoundError:
self.create_default_file()
# ret_data = self.default_values
return False

127
main.py
View File

@@ -1,65 +1,62 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from sys import exit, argv
from os import system
from subprocess import Popen
from time import sleep
from filesio import FilesIO
from match_name import MatchIO
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
],
"pc": {
"2": [ # Пятидневка
"IT01",
"IT02"
],
"7": [ # Цех
"PIS09",
"PIS10"
]
}
}
loaded_file = None
def main(comp_key, is_prod):
global loaded_file
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)
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) < 3:
print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех")
exit()
try:
filesio = FilesIO(default_values=default_values)
loaded_file = filesio.get_data()
if loaded_file is False:
raise OSError
matchio = MatchIO(loaded_file.get("expr_list"))
main(argv[1], argv[2].strip() == "prod")
except OSError:
print("Файл с настройками не найден. Создан файл со стандартными настройками.")
sleep(20)
exit()
except KeyboardInterrupt:
exit()
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from sys import exit, argv
from os import system
from subprocess import Popen
from filesio import FilesIO
from match_name import MatchIO
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
],
"pc": {
"2": [ # Пятидневка
"IT01",
"IT02"
],
"7": [ # Цех
"PIS09",
"PIS10"
]
}
}
loaded_file = None
def main(comp_key, is_debug):
global loaded_file
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:
if is_debug is False:
# 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) < 3:
print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех")
exit()
try:
filesio = FilesIO(default_values=default_values)
loaded_file = filesio.get_data()
if loaded_file is False:
raise OSError
matchio = MatchIO(loaded_file.get("expr_list"))
main(argv[1], argv[2].strip() == "debug")
except OSError:
print("Файл с настройками не найден. Создан файл со стандартными настройками.")
exit()
except KeyboardInterrupt:
exit()

View File

@@ -1,26 +1,26 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from re import match
# Список выражений по которым проводится проверка
# По дефолту стоит регион R54, индекс 630300
default_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
]
class MatchIO:
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:
if match(r[0], pc_name):
pc_name = "{}{}".format(r[1], pc_name)
break
if match(self.expr_list[2][0], pc_name):
return pc_name
return False
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from re import match
# Список выражений по которым проводится проверка
# По дефолту стоит регион R54, индекс 630300
default_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
]
class MatchIO:
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:
if match(r[0], pc_name):
pc_name = "{}{}".format(r[1], pc_name)
break
if match(self.expr_list[2][0], pc_name):
return pc_name
return False

View File

@@ -1,30 +1,30 @@
{
"expr_list" : [
[
"^[a-zA-Z]+\\d+$",
"R54-630300"
],
[
"^\\d+[a-zA-Z]+\\d+$",
"R54-"
],
[
"^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$",
""
]
],
"pc" : {
"2" : [
"IT01",
"IT02",
"630870MMP01",
"R54-630870MMP02"
],
"7" : [
"PIS09",
"PIS10",
"630870THE01",
"R54-630870THE02"
]
}
{
"expr_list" : [
[
"^[a-zA-Z]+\\d+$",
"R54-630300"
],
[
"^\\d+[a-zA-Z]+\\d+$",
"R54-"
],
[
"^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$",
""
]
],
"pc" : {
"2" : [
"IT01",
"IT02",
"630870MMP01",
"R54-630870MMP02"
],
"7" : [
"PIS09",
"PIS10",
"630870THE01",
"R54-630870THE02"
]
}
}