added arg to change log folder

This commit is contained in:
scuti 2024-10-30 03:15:13 -07:00
parent ae200646c2
commit 30c26352cd

View File

@ -3,7 +3,6 @@ import sqlite3 as sql
import logging import logging
import logging.handlers import logging.handlers
from os import listdir, mkdir
from os.path import isfile, exists from os.path import isfile, exists
from urllib.parse import unquote from urllib.parse import unquote
@ -48,8 +47,10 @@ def get_list_from_server_txt(filename):
output.append(row) output.append(row)
return output return output
def init_logging(): def init_logging(folder, base_file_name="dbimport-%s.log"):
filename = "_logs/dbimport-%s.log" if not exists(folder):
return False
filename = folder + "/" + base_file_name
i = 0 i = 0
while exists(filename % i): while exists(filename % i):
i += 1 i += 1
@ -163,6 +164,9 @@ def insert_to_database(d, s):
con.rollback() con.rollback()
def write_query(out_file, data): def write_query(out_file, data):
if exists(out_file):
print("stopped: output file already exists", file=sys.stderr)
return False
times, \ times, \
ranks, \ ranks, \
ids, \ ids, \
@ -175,7 +179,7 @@ def write_query(out_file, data):
file_handle.write("INSERT OR REPLACE INTO Cts_ranks VALUES(\'%s\', \'%s\', %s, \'%s\');\n" % tuple(r)) file_handle.write("INSERT OR REPLACE INTO Cts_ranks VALUES(\'%s\', \'%s\', %s, \'%s\');\n" % tuple(r))
for i in ids: for i in ids:
file_handle.write("INSERT OR REPLACE INTO Id2alias VALUES(\'%s\', \'%s\', \'%s\');\n" % tuple(i)) file_handle.write("INSERT OR REPLACE INTO Id2alias VALUES(\'%s\', \'%s\', \'%s\');\n" % tuple(i))
return return True
# Test whether repeat rows are added. # Test whether repeat rows are added.
def check_duplicates(database, data): def check_duplicates(database, data):
@ -225,19 +229,27 @@ if __name__ == "__main__":
ap.add_argument('-t', '--test', ap.add_argument('-t', '--test',
action='store_true', action='store_true',
help="test database for duplicates") help="test database for duplicates")
ap.add_argument('-q', '--query', ap.add_argument('-q', '--export-query',
action='store_true', action='store_true',
help="write query file (as opposed to executing / inserting rows into database)") help="write query file (as opposed to executing / inserting rows into database)")
ap.add_argument('-l', '--log',
type=str,
help="set folder to store log files")
args = ap.parse_args() args = ap.parse_args()
log_file = init_logging() log_dir = args.log or "logs"
print("Writing log to ", log_file) log_file = init_logging(log_dir)
if log_file:
print("writing log to folder '%s'," % log_dir, log_file, file=sys.stderr)
else:
print("exited: logging not initialized (folder '%s' does not exist)" % log_dir, file=sys.stderr)
exit()
try:
if args.test: if args.test:
check_duplicates(args.dest, args.src) check_duplicates(args.dest, args.src)
if args.query: if args.export_query:
try:
write_query(args.dest, args.src) write_query(args.dest, args.src)
except FileNotFoundError:
traceback.print_exc()
print("\n\t Exiting - no file to work with.", file=sys.stderr)
else: else:
insert_to_database(args.dest, args.src) insert_to_database(args.dest, args.src)
except FileNotFoundError:
traceback.print_exc()
print("\n\t exited: no input file to work with.", file=sys.stderr)