87 lines
2.5 KiB
Python
87 lines
2.5 KiB
Python
#!/usr/bin/python3
|
|
import csv
|
|
import os
|
|
from datetime import datetime
|
|
|
|
path = '/srv/tftp/'
|
|
|
|
|
|
def now_formatted():
|
|
now = datetime.now()
|
|
return now.strftime("%d/%m/%Y, %H:%M:%S")
|
|
|
|
|
|
header_cfg = f"""#!version:1.0.0.1
|
|
#Tasti rapidi del tastierino esterno
|
|
#ATTENZIONE: NON MODIFICARE QUESTO FILE
|
|
#Questo file viene generato automaticamente a partire dal file
|
|
#tastierino_esterno.csv, modificare quest'ultimo ed attendere qualche minuto
|
|
#file generato ultima volta il : {now_formatted()}
|
|
account.1.sip_server.1.address = 192.168.1.7"""
|
|
|
|
|
|
def append_log(text):
|
|
with open("error.txt", "a") as f:
|
|
log = " ".join([now_formatted(), text + "/n"])
|
|
f.write(log)
|
|
|
|
|
|
try:
|
|
os.chdir(path)
|
|
append_log("Current working directory: {0}".format(os.getcwd()))
|
|
except FileNotFoundError:
|
|
append_log("Directory: {0} does not exist".format(path))
|
|
except NotADirectoryError:
|
|
append_log("{0} is not a directory".format(path))
|
|
except PermissionError:
|
|
append_log("You do not have permissions to change to {0}".format(path))
|
|
|
|
|
|
def main(ofile):
|
|
with open(ofile, newline='') as csvfile:
|
|
spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
|
|
line_count = 0
|
|
to_write = header_cfg
|
|
for row in spamreader:
|
|
if line_count == 0:
|
|
# trova la posizione dei campi che ci interessano
|
|
idx_ext = row.index('extension')
|
|
idx_name = row.index('name')
|
|
else:
|
|
if 'idx_ext' not in locals() or 'idx_name' not in locals():
|
|
append_log("Errore: file csv senza i campi 'extension' e/o 'name'")
|
|
try:
|
|
ext_n = int(row[idx_ext])
|
|
except ValueError:
|
|
continue
|
|
|
|
ext_name = row[idx_name]
|
|
to_write = "\n".join([to_write, print_ext(line_count, ext_n, ext_name)])
|
|
line_count += 1
|
|
write_f(to_write, "tastierino_esterno.cfg")
|
|
|
|
|
|
def write_f(text, file_name):
|
|
with open(file_name, "w") as file:
|
|
file.write(text)
|
|
|
|
|
|
def print_ext(n, n_ext, lbl_ext):
|
|
spamrow = f"""expansion_module.1.key.{n}.extension =
|
|
expansion_module.1.key.{n}.label = {n_ext}
|
|
expansion_module.1.key.{n}.type = 16
|
|
expansion_module.1.key.{n}.value = {lbl_ext}"""
|
|
return spamrow
|
|
|
|
|
|
def print_hotkeys():
|
|
exit
|
|
|
|
|
|
if __name__ == '__main__':
|
|
ofile: str = 'tastierino_esterno.csv'
|
|
try:
|
|
main(ofile)
|
|
except FileNotFoundError:
|
|
append_log("File CSV non trovato")
|