From ba81851219198e6def3cf6a88aa4c1760c493d00 Mon Sep 17 00:00:00 2001 From: fz0x1 Date: Fri, 17 Jan 2025 21:19:43 +0100 Subject: [PATCH] 20250117.1737145183 --- global/scripts/bin/diary.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/global/scripts/bin/diary.py b/global/scripts/bin/diary.py index 8c8f380..771f810 100755 --- a/global/scripts/bin/diary.py +++ b/global/scripts/bin/diary.py @@ -7,6 +7,7 @@ import logging import os import re import shlex +import shutil import sqlite3 import subprocess import sys @@ -273,6 +274,10 @@ def doctor(): diary_name = sys.argv[2] diary_path = get_diary_path_by_name(diary_name).parent + diary_filename = get_diary_path_by_name(diary_name) + + # do backup ever! + make_backup(diary_filename, diary_path) conn = db_connection(diary_path) initialize_db(conn) @@ -328,12 +333,25 @@ def make_hash(file: Path): return sha256_hash.hexdigest() +def make_backup(diary_name: str, diary_path: Path): + try: + os.remove(diary_path / f"{diary_name}.bak") + except FileNotFoundError: + ... + # shutil.copy2(diary_path / diary_name, diary_path / f"{diary_name}.bak") # I can't make backup when the diary is not encrypted... + shutil.copy2(diary_path / DB_NAME, diary_path / f"{DB_NAME}.bak") + + def export(): if len(sys.argv) < 4 or sys.argv[1] != "export": sys.exit("Usage: script.py export ") diary_name, tag = sys.argv[2], sys.argv[3] diary_path = get_diary_path_by_name(diary_name).parent + diary_filename = get_diary_path_by_name(diary_name) + + # do backup ever! + make_backup(diary_filename, diary_path) try: conn = db_connection(diary_path) @@ -399,10 +417,15 @@ def insert(): # sys.exit("Invalid usage for bulk insert.") diary_name = sys.argv[2] + # do backup ever! insert_type = ( "bulk" if len(sys.argv) > 3 and sys.argv[3] == "bulk" else "single" ) diary_path = get_diary_path_by_name(diary_name).parent + diary_filename = get_diary_path_by_name(diary_name) + + # do backup ever! + make_backup(diary_filename, diary_path) conn = db_connection(diary_path) initialize_db(conn)